Para pasar datos de un formato JSON a CSV se puede hacer uso de librerías como PANDAS, la cual facilita mucho el manejo de estructuras de datos.
El primer paso sería importar la librería pandas:
import pandas as pd
Luego deberíamos leer nuestros datos, ya sea desde un archivo JSON, desde una base de datos o desde una API, para este ejemplo se hará con una estructura de diccionario de Python que sería la manera de manejar una estructura JSON en este lenguaje, por tanto, nuestros datos serían:
usersJson = {
"Users": [
{
"Path": "/",
"UserName": "EASY",
"UserId": "AID",
"Arn": "arn:aws:iam::74:user/A",
"CreateDate": "2018-01-03T14:33:00Z",
"PasswordLastUsed": "2018-01-04T14:48:02Z"
},
{
"Path": "/",
"UserName": "Aud",
"UserId": "FSG",
"Arn": "arn:aws:iam::32:user/AUDIRI",
"CreateDate": "2017-08-07T21:32:35Z",
"PasswordLastUsed": "2017-08-09T10:20:08Z"
}
]}
Para facilitar el manejo de estos datos, los convertimos a un DataFrame de pandas:
usersDataframe = pd.DataFrame(usersJson['Users'])
Para este caso especial se requiere obtener solo un subconjunto de las “columnas” de todos los datos, por lo que vamos a definir un arreglo con los campos con los que deseamos dejar al conjunto de datos, nuestra lista de campos sería:
fields = ['UserName', 'UserId', 'Arn', 'CreateDate']
Con este listado de campos vamos a filtrar nuestro DataFrame y dejar solamente estas columnas dentro de un nuevo DataFrame reducido en cuanto a las columnas, nuestro nuevo DataFrame quedaría de la siguiente manera:
csvData = usersDataframe[fields]
Una vez que hemos obtenido el conjunto de datos requerido, el siguiente paso será guardar en una estructura CSV, la manera más sencilla de realizar esto es con una función propia de los DataFrames de Python “to_csv” a la cual vamos a pasar dos parámetros:
- El nombre con el que se va a guardar el archivo. (Se puede definir el PATH completo)
- La bandera index para indicar si queremos guardar los nombres de las columnas True, o False si no queremos guardarlas.
Entonces, para guardar el archivo CSV con el conjunto de datos que hemos construido será de la siguiente manera:
csvData.to_csv('data.csv', index=True)
Así habremos creado una nueva estructura a partir de una estructura JSON para guardarla en formato CSV.
No hay comentarios.:
Publicar un comentario