Leer y escribir archivos JSON en Python con Pandas

    Introducci贸n

    Pandas es una de las bibliotecas de Python m谩s utilizadas para el manejo y visualizaci贸n de datos. los Biblioteca de pandas proporciona clases y funcionalidades que se pueden utilizar para leer, manipular y visualizar datos de manera eficiente, almacenados en una variedad de formatos de archivo.

    En este art铆culo, leeremos y escribiremos archivos JSON usando Python y Pandas.

    驴Qu茅 es un archivo JSON?

    La notaci贸n de objetos JavaScript (JSON) es un formato de datos que almacena datos en un formato legible por humanos. Si bien t茅cnicamente se puede utilizar para almacenamiento, los archivos JSON se utilizan principalmente para la serializaci贸n y el intercambio de informaci贸n entre un cliente y un servidor.

    Aunque se deriv贸 de JavaScript, es independiente de la plataforma y es un formato ampliamente difundido y utilizado, principalmente en las API REST.

    Crear un archivo JSON

    Para crear archivos JSON a trav茅s de Python, los datos deben almacenarse de cierta manera. Hay varias formas de almacenar estos datos usando Python. Algunos de los m茅todos se han discutido en este art铆culo.

    Primero crearemos un archivo usando el n煤cleo de Python y luego lo leeremos y escribiremos a trav茅s de Pandas.

    Creaci贸n de datos JSON a trav茅s de diccionarios anidados

    En Python, para crear datos JSON, puede utilizar diccionarios anidados. Cada elemento dentro del diccionario externo corresponde a una columna en el archivo JSON.

    La clave de cada elemento es el encabezado de la columna y el valor es otro diccionario que consta de filas en esa columna en particular. Creemos un diccionario que se pueda usar para crear un archivo JSON que almacene un registro de pacientes ficticios:

    patients = {
             "Name":{"0":"John","1":"Nick","2":"Ali","3":"Joseph"},
             "Gender":{"0":"Male","1":"Male","2":"Female","3":"Male"},
             "Nationality":{"0":"UK","1":"French","2":"USA","3":"Brazil"},
             "Age" :{"0":10,"1":25,"2":35,"3":29}
    }
    

    En el gui贸n anterior, el primer elemento corresponde al Name columna. El valor del elemento consiste en un diccionario donde los elementos del diccionario representan filas. Las claves de los elementos del diccionario interno corresponden a los n煤meros de 铆ndice de las filas, donde los valores representan los valores de las filas.

    Dado que eso puede ser un poco dif铆cil de visualizar as铆, aqu铆 hay una representaci贸n visual:

    En el Name columna, el primer registro se almacena en el 铆ndice 0 donde el valor del registro es John, de manera similar, el valor almacenado en la segunda fila del Name la columna es Nick y as铆.

    Crear datos JSON a trav茅s de listas de diccionarios

    Otra forma de crear datos JSON es mediante una lista de diccionarios. Cada elemento de la lista consta de un diccionario y cada diccionario representa una fila. Este enfoque es mucho m谩s legible que el uso de diccionarios anidados.

    Creemos una lista que se puede usar para crear un archivo JSON que almacena informaci贸n sobre diferentes autos:

    cars = [
        {"Name":"Honda", "Price": 10000, "Model":2005, "Power": 1300},
        {"Name":"Toyota", "Price": 12000, "Model":2010, "Power": 1600},
        {"Name":"Audi", "Price": 25000, "Model":2017, "Power": 1800},
        {"Name":"Ford", "Price": 28000, "Model":2009, "Power": 1200},
             
    ]
    

    Cada elemento del diccionario corresponde a una fila en un archivo JSON. Por ejemplo, el primer elemento del primer diccionario almacena el valor Honda en el Name columna. Del mismo modo, el valor de la Price La columna de la primera fila ser谩 10000 y as铆.

    Escribir datos en un archivo JSON a trav茅s de Python

    Con nuestro diccionario anidado y una lista de diccionarios, podemos almacenar estos datos en un archivo JSON. Para lograr esto, usaremos el json m贸dulo y el dump() m茅todo:

    import json
    with open('E:/datasets/patients.json', 'w') as f:
        json.dump(patients, f)
        
    with open('E:/datasets/cars.json', 'w') as f:
        json.dump(cars, f)  
    

    Ahora, tenemos dos archivos JSON: patients.json y cars.json. El siguiente paso es leer estos archivos a trav茅s de la biblioteca Pandas.

    Si desea leer m谩s sobre c贸mo leer y escribir JSON en un archivo en Core Python, 隆lo tenemos cubierto!

    Leer archivos JSON con Pandas

    Para leer un archivo JSON a trav茅s de Pandas, utilizaremos el read_json() y pasarle la ruta al archivo que nos gustar铆a leer. El m茅todo devuelve un Pandas DataFrame que almacena datos en forma de columnas y filas.

    Aunque, primero, tendremos que instalar Pandas:

    $ pip install pandas
    

    Leer JSON desde archivos locales

    El siguiente script lee el patients.json archivo de un directorio del sistema local y almacena el resultado en el patients_df marco de datos. El encabezado del marco de datos se imprime a trav茅s de la head() m茅todo:

    import pandas as pd
    patients_df = pd.read_json('E:/datasets/patients.json')
    patients_df.head()
    

    Ejecutar este c贸digo deber铆a producir:

    De manera similar, el siguiente script lee el cars.json archivo del sistema local y luego llama al head() m茅todo en el cars_df para imprimir el encabezado:

    cars_df = pd.read_json('E:/datasets/cars.json')
    cars_df.head()
    

    Ejecutar este c贸digo deber铆a producir:

    Leyendo JSON desde archivos remotos

    los read_json() El m茅todo no se limita a leer solo archivos locales. Tambi茅n puede leer archivos JSON ubicados en servidores remotos. Solo tiene que pasar la ruta del archivo JSON remoto a la llamada a la funci贸n.

    Leamos e imprimamos el encabezado del Iris Dataset, un conjunto de datos muy popular que contiene informaci贸n sobre varias flores de Iris:

    import pandas as pd
    iris_data = pd.read_json("https://raw.githubusercontent.com/domoritz/maps/master/data/iris.json")
    iris_data.head()
    

    Ejecutar este c贸digo deber铆a producirnos:

    Escribir archivos de datos JSON a trav茅s de Pandas

    Para convertir un marco de datos de Pandas en un archivo JSON, usamos el to_json() funci贸n en el marco de datos y pasar la ruta al archivo que pronto ser谩 como par谩metro.

    Creemos un archivo JSON desde el tips conjunto de datos, que se incluye en la biblioteca Seaborn para la visualizaci贸n de datos.

    Primero que nada, instalemos Seaborn:

    $ pip install seaborn
    

    Luego, import茅moslo y carguemos las sugerencias en un conjunto de datos:

    import seaborn as sns
    
    dataset = sns.load_dataset('tips')
    dataset.head()
    

    As铆 es como se ve el conjunto de datos:

    Seaborn’s load_dataset() la funci贸n devuelve un pandas DataFrame, por lo que cargar el conjunto de datos de esta manera nos permite simplemente llamar al to_json() funci贸n para convertirlo.

    Una vez que hayamos obtenido el conjunto de datos, guardemos su contenido en un archivo JSON. Hemos creado un datasets directorio para esto:

    dataset.to_json('E:/datasets/tips.json')
    

    Navegando al E:/datasets directorio, deber铆as ver tips.json. Al abrir el archivo, podemos ver JSON que corresponden a registros en el marco de datos de Pandas que contiene el tips conjunto de datos:

    {
       "total_bill":{
           "0":16.99,
           "1":10.34,
           "2":21.01,
           "3":23.68,
           "4":24.59,
           "5":25.29,
           ...
       }
       "tip":{
           "0":1.01,
           "1":1.66,
           "2":3.5,
           "3":3.31,
           "4":3.61,
           "5":4.71,
           ...
       }
       "sex":{
            "0":"Female",
            "1":"Male",
            "2":"Male",
            "3":"Male",
            "4":"Female",
            "5":"Male",
            ...
       }
        "smoker":{
            "0":"No",
            "1":"No",
            "2":"No",
            "3":"No",
            "4":"No",
            "5":"No",
            ...
        }
        ...
    

    Conclusi贸n

    JSON es un formato ampliamente utilizado para el almacenamiento e intercambio de datos entre un cliente y un servidor. Los desarrolladores suelen utilizar este formato sobre formatos como XML debido a lo ligero y legible que es.

    En este art铆culo, hemos cubierto c贸mo leer y escribir archivos JSON utilizando la popular biblioteca Pandas de Python, desde archivos locales a remotos.

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *