Как научиться писать программу, которая может извлекать объекты из JSON/XML?

Как научиться писать программу, которая может извлекать объекты из JSON/XML?

Отказ от ответственности

Во-первых, это один из моих первых вопросов по SE, поэтому прошу прощения, если я нарушу какие-либо писаные или неписаные правила.

Введение

На своей работе, связанной с обслуживанием/поддержкой клиентов, мне часто приходится проверять файлы журналов одного из наших интерфейсов REST (формат JSON).

Этот журнал содержит запросы, сделанные на одном из наших веб-сервисов. Данные интересны нам статистически, поэтому в какой-то момент один из наших разработчиков создал инструмент, который извлекал данные из журнала и возвращал CSV-файл, который можно использовать для манипуляции данными.

Однако один из наших других клиентов (на другом сервере) использует веб-сервис немного по-другому, из-за чего инструмент не может обрабатывать данные. Дело в том, что наши разработчики очень заняты, и это не является высокоприоритетной проблемой. Тем не менее, мне кажется, что это должно быть довольно просто, поэтому я хотел бы произвести хорошее впечатление и, возможно, создать это сам.

Пример

Пример ввода (JSON):

2017-01-31 05:42:43:587 -> 2017-01-31 05:42:43:587:1536:GET /v1/webservice_path.../ABC123 X-Api-Key:xyz  
2017-01-31 05:42:43:587 <- 2017-01-31 05:42:43:587:1536:OK:{
    "parameter 1": true,
    "parameter 2": true

Пример вывода (CSV):

ID;Parameter 1;Parameter 2
ABC123;true;true

У меня есть техническийчутьёно абсолютно никакого формального обучения программированию, за исключением самых базовых курсов HTML, Python и Ruby на CodeAcademy.

Вопрос

На самом деле этот вопрос состоит из двух частей:

  1. Как/где мне научиться создавать такой инструмент/скрипт? На каком языке, по какому каналу учиться и т. д.
  2. Реально ли вообще попытаться построить это? И стоит ли тратить время на изучение этого?

Дополнительная информация

Я хочу создать инструмент сам, а не копировать решение, которое кто-то из вас может сделать за считанные минуты. Одна из причин этого заключается в том, что использование нашего веб-сервиса различается от клиента к клиенту, поэтому другой клиент может использовать его следующим образом (к чему я также хочу быть готов):

2017-01-31 05:42:43:587 -> 2017-01-31 05:42:43:587:1536:GET /v1/webservice_path.../ ID_1:ABC123 ID2_:QWE456 X-Api-Key:xyz  
2017-01-31 05:42:43:587 <- 2017-01-31 05:42:43:587:1536:OK:{
    "parameter 1": true,
    "parameter 2": true
    "parameter 3": true

(обратите внимание, что вместо помещения запроса непосредственно после /, запрос вводится в поле «ID_1», а необязательное дополнительное поле «ID_2» также содержит данные)

Связанный контент