NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
API Testing5 min read

Cómo Convertir JSON a CSV: Métodos, Herramientas y Ejemplos de Código

S
Shreya Srivastava
Content Team

Cómo Convertir JSON a CSV: Métodos Rápidos

Convertir JSON a CSV es una de las tareas de transformación de datos más comunes. Ya sea que necesite analizar datos de API en Excel, exportar registros de base de datos para un informe o preparar datos de entrenamiento para machine learning, estos son los métodos más rápidos:

Método

Ideal Para

Nivel de Habilidad

Convertidor JSON a CSV de Qodex

Conversiones rápidas y puntuales

Sin necesidad de código

Python (pandas)

Conjuntos de datos grandes, automatización

Python básico

JavaScript (json2csv)

Proyectos Node.js, pipelines de API

JavaScript básico

Línea de comandos (jq + miller)

Scripts de shell, transformaciones rápidas

Familiaridad con CLI

Excel Power Query

Usuarios sin conocimientos técnicos

Sin necesidad de código

Método 1: Convertidor Gratuito en Línea (Sin Código)

La forma más rápida de convertir JSON a CSV es con el Convertidor JSON a CSV gratuito de Qodex:

  1. Pegue sus datos JSON o cargue un archivo .json

  2. La herramienta detecta automáticamente la estructura y aplana los objetos anidados

  3. Descargue el archivo CSV resultante

Este método funciona mejor para conversiones rápidas y puntuales de conjuntos de datos pequeños a medianos. No se requiere cuenta y los datos no se almacenan en servidores.

Para la conversión inversa, use el Convertidor CSV a JSON. Para una comparación más profunda de estos formatos, consulte nuestra comparación CSV vs JSON.

Método 2: Python con pandas

La biblioteca pandas de Python es la opción más popular para la conversión programática de JSON a CSV, especialmente para conjuntos de datos grandes o pipelines automatizados:

import pandas as pd
import json

# Array JSON plano simple data = [ {"name": "Alice", "email": "alice@example.com", "age": 30}, {"name": "Bob", "email": "bob@example.com", "age": 25} ] df = pd.DataFrame(data) df.to_csv("output.csv", index=False)

# Desde un archivo JSON df = pd.read_json("data.json") df.to_csv("output.csv", index=False)

# JSON anidado, aplanar primero with open("nested.json") as f: data = json.load(f) df = pd.json_normalize(data) # Aplana objetos anidados df.to_csv("output.csv", index=False)

Función clave: pd.json_normalize() maneja JSON anidado aplanándolo en columnas con notación de punto (por ejemplo, address.city, address.zip). Esto es esencial para convertir respuestas de API del mundo real, que rara vez son planas.

Método 3: JavaScript con json2csv

Para proyectos Node.js o pipelines de datos construidos en JavaScript:

const { Parser } = require('json2csv');

const data = [ { name: "Alice", email: "alice@example.com", age: 30 }, { name: "Bob", email: "bob@example.com", age: 25 } ];

// Conversión básica const parser = new Parser(); const csv = parser.parse(data); console.log(csv);

// Con datos anidados, especificar aplanamiento const { Parser } = require('json2csv'); const opts = { fields: ['name', 'address.city', 'address.zip'], unwind: ['orders'], // Expandir arrays en múltiples filas }; const parser = new Parser(opts); const csv = parser.parse(nestedData);

La biblioteca json2csv maneja la mayoría de las estructuras JSON comunes, incluidos objetos anidados, arrays y tipos mixtos. Instálela con npm install json2csv.

Método 4: Línea de Comandos

Para scripts de shell y líneas de código rápidas, combine jq (procesador JSON) con herramientas estándar:

# Usando jq para convertir array JSON plano a CSV
cat data.json | jq -r '
  (.[0] | keys_unsorted) as $keys |
  ($keys | @csv),
  (.[] | [.[$keys[]]] | @csv)
' > output.csv

# Usando miller (mlr), diseñado específicamente para conversión de formatos mlr --json2csv cat data.json > output.csv

# Usando una línea de Python python3 -c "import pandas as pd; pd.read_json('data.json').to_csv('output.csv', index=False)"

Miller (mlr) es especialmente útil para la conversión de formatos de datos. Instálelo con brew install miller (macOS) o apt install miller (Ubuntu).

Manejo de JSON Anidado

El JSON del mundo real proveniente de endpoints de API rara vez es plano. A continuación se indica cómo manejar las estructuras anidadas más comunes:

Objetos Anidados - Columnas con Notación de Punto

// JSON de entrada
{"name": "Alice", "address": {"city": "NYC", "zip": "10001"}}

// CSV de salida name,address.city,address.zip Alice,NYC,10001

Arrays - Múltiples Filas o Cadenas Delimitadas

// JSON de entrada
{"name": "Alice", "tags": ["admin", "editor"]}

// Opción A: Múltiples filas (unwind) name,tags Alice,admin Alice,editor

// Opción B: Cadena delimitada name,tags Alice,"admin;editor"

Anidamiento Mixto - Aplanar y Expandir

Para JSON profundamente anidado, use un enfoque de dos pasos: primero aplane los objetos con json_normalize(), luego expanda los arrays en filas separadas. Esto conserva todos los datos mientras crea una estructura tabular válida.

Comprender las diferencias estructurales entre estos formatos ayuda a elegir el enfoque de conversión correcto. Consulte nuestra comparación CSV vs JSON para un análisis más profundo de las diferencias.


Preguntas Frecuentes

¿Puedo convertir JSON anidado a CSV?

Sí, pero el JSON anidado requiere aplanamiento. Los objetos anidados se convierten generalmente en nombres de columnas con notación de punto (por ejemplo, address.city), y los arrays pueden expandirse en múltiples filas o unirse en cadenas delimitadas. pandas.json_normalize() de Python y la biblioteca json2csv de Node.js manejan automáticamente la mayoría de los patrones de anidamiento. Para conversiones rápidas, el Convertidor JSON a CSV de Qodex también gestiona estructuras anidadas de forma automática.

¿Qué datos se pierden al convertir JSON a CSV?

CSV no puede representar tipos de datos (todo se convierte en texto), estructuras anidadas (aplanadas en notación de punto o múltiples filas), distinciones entre null y cadena vacía, ni valores booleanos (se convierten en las cadenas "true"/"false"). Si necesita preservar estas distinciones, considere mantener una copia JSON junto al CSV, o usar un formato que soporte tipos como Parquet o NDJSON.

¿Cómo convierto un archivo JSON grande a CSV?

Para archivos grandes (más de 100 MB), evite cargar todo el archivo en memoria. Use enfoques de streaming: la biblioteca ijson de Python para análisis incremental, o procese NDJSON (un objeto JSON por línea) con lectura línea por línea. Para conjuntos de datos muy grandes, herramientas como Apache Spark o DuckDB pueden convertir JSON a CSV de manera eficiente con un uso mínimo de memoria.

¿Cómo convierto respuestas de API JSON a CSV?

La mayoría de las respuestas de API devuelven arrays JSON de objetos, que se corresponden directamente con filas CSV. Use la biblioteca requests de Python para obtener los datos y pandas para convertirlos: pd.DataFrame(response.json()).to_csv('output.csv'). Para APIs paginadas, recopile todas las páginas en una lista antes de convertir. Para flujos de trabajo de pruebas de API, Qodex.ai puede exportar los resultados de las pruebas directamente a CSV.

¿Cuál es el mejor convertidor de JSON a CSV?

Para conversiones rápidas sin código: el Convertidor JSON a CSV de Qodex (gratuito, sin necesidad de cuenta). Para conversión programática en Python: pandas con json_normalize(). Para JavaScript/Node.js: el paquete npm json2csv. Para línea de comandos: miller (mlr --json2csv). Elija según su caso de uso: conversión puntual o automatizada, archivos pequeños o grandes, JSON plano o anidado.

¿Puedo convertir CSV de vuelta a JSON?

Sí. La conversión inversa es sencilla para datos planos: cada fila CSV se convierte en un objeto JSON con los encabezados de columna como claves. Use el Convertidor CSV a JSON de Qodex para conversiones rápidas, o pandas.read_csv('data.csv').to_json() en Python. Tenga en cuenta que la conversión de CSV a JSON siempre produce objetos planos; si necesita estructuras anidadas, deberá escribir lógica de transformación personalizada.