Cómo la IA me ayudó a automatizar documentos JSON en Excel
El problema inicial
Tenía decenas de archivos JSON generados por una aplicación de reportes, con información de miles de registros diarios, validaciones y detalles de trabajo. Cada archivo contenía:
Metadatos
Campos dinámicos
Ordenes de trabajo
Un archivo JSON no interpretado, puede verse de la siguiente manera:
Este modo de visualización no es el que esperaría un usuario no técnico para procesar la información.
Por esto, me puse como objetivo::
Consolidar todos los JSON en un único Excel.
Normalizar la información para que cualquier persona pudiera leerla.
Explotar el detalle de OTs en columnas, sin arrays ni estructuras anidadas.
Primera fase: Consolidación básica
Mediante un set de instrucciones básico en Copilot, creamos un script en Python que:
Leía todos los archivos data_*.json de la carpeta raíz.
Extraía todos los campos y los convertía en columnas.
Exportaba un Excel y un CSV listos para análisis.
Este paso resolvió el caso inicial, pero el resultado era muy ancho y poco amigable. Aun así, fue un gran avance: de cientos de JSON a un solo Excel.
Segunda fase: Normalización del detalle de OTs
Aquí vino el reto interesante: el campo Detalle Trabajos no podía quedarse como un array en una celda. Así que diseñamos un segundo script que:
Usaba el ID princiapl como clave primaria.
Explotaba cada OT en filas separadas, con columnas claras:
OT
Descripción
Inicio
Fin
El resultado: un Excel limpio, legible y escalable, donde cada fila representa una tarea concreta.
Código de ejemplo
Aquí tienes un fragmento del script que explota el detalle de OTs:
Python
def extract_item_to_row(items, record_id: str) -> dict:
out = {"record_id": str(record_id)}
for it in items:
raw_label = it.get("label") or it.get("uniqueLabel") or it.get("id") or ""
col = normalize_label_to_col(raw_label)
val = to_scalar_text(it.get("value"))
out[col] = val
return out
…
Este bloque se encarga de mapear dinámicamente los campos del detalle a columnas legibles.
Lecciones aprendidas
Automatizar ahorra horas (y errores): Pasamos de un trabajo manual imposible a un proceso reproducible en segundos.
Flexibilidad ante datos dinámicos: Diseñar scripts que descubran columnas adicionales evita rehacer el código cada vez que cambia el formulario.
¿Te interesa el código completo?
En el proyecto original desarrollamos scripts que:
Consolidaban todos los JSON en un Excel.
Explotaban el detalle de OTs en columnas claras.
Detectaban y añadían campos adicionales automáticamente.
(Si quieres que publique el código completo en GitHub, ¡déjamelo en los comentarios!)
Comentarios
Publicar un comentario