Conversión de CSV a JSON: Deja de enviar hojas de cálculo por correo electrónico a los desarrolladores

Una vez, una responsable de marketing me envió por correo una hoja de Excel de 47 columnas con celdas combinadas y me pidió que simplemente «la importara a la base de datos». Me quedé mirando esa hoja de cálculo durante veinte minutos antes de responder. No porque no pudiera procesarla, sino porque tuve que explicar por qué la fila 3, que actúa como subtítulo de las filas 4 a 18, no es algo que ningún script entenderá por sí solo.

Llevo años recibiendo datos con una estructura deficiente. La solución casi siempre es la misma: convertir CSV a JSON, pero con una estructura que se adapte realmente al funcionamiento de las bases de datos y las APIs. Esto es lo que he aprendido para hacerlo correctamente, y por qué es más importante de lo que cree la mayoría de la gente.

El verdadero problema no es el formato, sino la estructura

El CSV es una tabla plana. El JSON es anidado. La conversión parece sencilla hasta que te encuentras con una columna que contiene varios valores, una fila que funciona como encabezado agrupador o —mi caso favorito— una columna de «Notas» donde alguien escribió párrafos de texto libre con comas incluidas.

Te recomiendo abrir cualquier CSV que vayas a convertir y comprobar primero tres puntos: