JSON a CSV en Python
-
Utilizar el método Pandas DataFrames
to_csv()
para convertir JSON a CSV en Python -
Utilizar el módulo
csv
para convertir JSON en un archivo CSV
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 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.
LinkedInArtículo relacionado - Python JSON
- Obtener JSON de la URL en Python
- Cómo imprimir un archivo JSON en Python
- Agregar datos a un archivo JSON usando Python
- Aplanar JSON en Python
- Python compara objetos JSON multinivel usando JSON Diff
- Serializar un objeto de clase de Python a JSON