¿Cómo aprendo a escribir un programa que pueda extraer objetos de JSON/XML?

¿Cómo aprendo a escribir un programa que pueda extraer objetos de JSON/XML?

Descargo de responsabilidad

En primer lugar, esta es una de mis primeras preguntas sobre SE, por lo que me disculpo si rompo alguna convención escrita o no escrita.

Introducción

En mi trabajo en una especie de función de soporte/servicio al cliente, a menudo tengo que verificar los archivos de registro de una de nuestras interfaces REST (formato JSON).

Este registro contiene las solicitudes realizadas en uno de nuestros servicios web. Los datos son estadísticamente interesantes para nosotros, por lo que en algún momento uno de nuestros desarrolladores creó una herramienta que extrajo datos del registro y devolvió un archivo CSV que puede usarse para la manipulación de datos.

Sin embargo, uno de nuestros otros clientes (en otro servidor) utiliza el servicio web de forma un poco diferente, lo que provoca que la herramienta no pueda procesar los datos. El caso es que nuestros desarrolladores están muy ocupados y este no es un tema de alta prioridad. Aun así, me parece que esto debería ser bastante sencillo, así que me gustaría dar una buena impresión y tal vez construirlo yo mismo.

Ejemplo

Entrada de ejemplo (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

Salida de ejemplo (CSV):

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

tengo tecnicoinstintopero no hay absolutamente ninguna capacitación formal en codificación, aparte de los cursos más básicos de HTML, Python y Ruby en CodeAcademy.

Pregunta

En realidad, esta es una pregunta de dos partes:

  1. ¿Cómo/dónde aprendo a crear dicha herramienta/script? Qué idioma, de qué canal aprender, etc.
  2. ¿Es siquiera realista para mí intentar poder construir esto? ¿Y vale la pena el tiempo invertido en aprender esto?

Información extra

Quiero crear la herramienta yo mismo; No copie una solución que uno de ustedes pueda preparar en minutos. Una razón para esto es que el uso de nuestro servicio web varía de un cliente a otro, por lo que otro cliente podría estar usándolo así (para lo cual también quiero estar preparado):

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

(tenga en cuenta que en lugar de realizar la solicitud directamente después de /, la solicitud se ingresa en el campo "ID_1" y un campo adicional opcional "ID_2" también contiene datos)

información relacionada