JSON a CSV en Python

Manav Narula 30 enero 2023
  1. Utilizar el método Pandas DataFrames to_csv() para convertir JSON a CSV en Python
  2. Utilizar el módulo csv para convertir JSON en un archivo CSV
JSON a CSV en Python

JSON significa JavaScript Object Notation. Se basa en el formato de los objetos en JavaScript y es una técnica de codificación para representar datos estructurados. Se utiliza mucho hoy en día, especialmente para compartir datos entre servidores y aplicaciones web.

Un archivo CSV se utiliza para almacenar datos en un formato tabular como las hojas de cálculo de Excel.

En este tutorial, aprenderemos a convertir datos JSON a un archivo CSV.

Utilizar el método Pandas DataFrames to_csv() para convertir JSON a CSV en Python

En este método, primero convertiremos el JSON a un Pandas DataFrame y de ahí lo convertiremos a un archivo CSV usando el método to_csv(). Podemos leer la cadena JSON utilizando la función json.loads() que se proporciona en la librería json de Python para convertir JSON en un DataFrame. Luego pasamos este objeto JSON a la función json_normalize() que devolverá un DataFrame de Pandas que contiene los datos requeridos.

El siguiente fragmento de código explicará cómo lo hacemos.

import pandas as pd
import json

data = """
{
"Results":
         [
         { "id": "1", "Name": "Jay" },
         { "id": "2", "Name": "Mark" },
         { "id": "3", "Name": "Jack" }
         ],
"status": ["ok"]
}
"""

info = json.loads(data)

df = pd.json_normalize(info["Results"])

df.to_csv("samplecsv.csv")

El contenido del archivo CSV creado está abajo.

,id,Name
0,1,Jay
1,2,Mark
2,3,Jack

Utilizar el módulo csv para convertir JSON en un archivo CSV

En este método, utilizaremos la librería csv de Python que se utiliza para leer y escribir archivos CSV. Primero, leeremos los datos JSON como hicimos en el método anterior. Abrimos un fichero en modo escritura y utilizamos el DictWriter() del módulo csv para crear un objeto que nos permita mapear y escribir datos JSON en el fichero. Los fieldnames son claves que se identifican y se emparejan con los datos cuando escribimos filas utilizando la función writerows().

El siguiente fragmento de código mostrará cómo podemos implementar el método anterior:

import csv
import json

data = """
{
"Results":
         [
         { "id": "1", "Name": "Jay" },
         { "id": "2", "Name": "Mark" },
         { "id": "3", "Name": "Jack" }
         ],
"status": ["ok"]
}
"""

info = json.loads(data)["Results"]

print(info[0].keys())

with open("samplecsv.csv", "w") as f:
    wr = csv.DictWriter(f, fieldnames=info[0].keys())
    wr.writeheader()
    wr.writerows(info)
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python JSON

Artículo relacionado - Python CSV