Lecture et écriture de fichiers JSON en Python avec Pandas

Online Coding Courses for Kids

introduction

Pandas est l’une des bibliothèques Python les plus utilisées pour le traitement et la visualisation des données. le Bibliothèque Pandas fournit des classes et des fonctionnalités qui peuvent être utilisées pour lire, manipuler et visualiser efficacement les données, stockées dans une variété de formats de fichiers.

Dans cet article, nous allons lire et écrire des fichiers JSON en utilisant Python et Pandas.

Qu’est-ce qu’un fichier JSON?

Notation d’objet JavaScript (JSON) est un format de données qui stocke les données sous une forme lisible par l’homme. Bien qu’il puisse être techniquement utilisé pour le stockage, les fichiers JSON sont principalement utilisés pour la sérialisation et l’échange d’informations entre un client et un serveur.

Bien qu’il soit dérivé de JavaScript, il est indépendant de la plate-forme et est un format largement répandu et utilisé – le plus souvent dans les API REST.

Création d’un fichier JSON

Pour créer des fichiers JSON via Python, les données doivent être stockées d’une certaine manière. Il existe plusieurs façons de stocker ces données à l’aide de Python. Certaines des méthodes ont été discutées dans cet article.

Nous allons d’abord créer un fichier en utilisant le noyau Python, puis le lire et y écrire via Pandas.

Création de données JSON via un dictionnaire imbriqué

En Python, pour créer des données JSON, vous pouvez utiliser des dictionnaires imbriqués. Chaque élément du dictionnaire externe correspond à une colonne du fichier JSON.

La clé de chaque élément est l’en-tête de colonne et la valeur est un autre dictionnaire composé de lignes dans cette colonne particulière. Créons un dictionnaire qui peut être utilisé pour créer un fichier JSON qui stocke un enregistrement de patients fictifs:

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}
}

Dans le script ci-dessus, le premier élément correspond à la Name colonne. La valeur de l’élément se compose d’un dictionnaire où les éléments du dictionnaire représentent des lignes. Les clés des éléments du dictionnaire interne correspondent aux numéros d’index des lignes, où les valeurs représentent les valeurs des lignes.

Comme cela peut être un peu difficile à visualiser comme ça, voici une représentation visuelle:

patients visualisés

dans le Name colonne, le premier enregistrement est stocké au 0e index où la valeur de l’enregistrement est John, de même, la valeur stockée à la deuxième ligne du Name la colonne est Nick etc.

Création de données JSON via des listes de dictionnaires

Une autre façon de créer des données JSON est via une liste de dictionnaires. Chaque élément de la liste se compose d’un dictionnaire et chaque dictionnaire représente une ligne. Cette approche est beaucoup plus lisible que l’utilisation de dictionnaires imbriqués.

Créons une liste qui peut être utilisée pour créer un fichier JSON qui stocke des informations sur différentes voitures:

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},
         
]

Chaque élément du dictionnaire correspond à une ligne dans un fichier JSON. Par exemple, le premier élément du premier dictionnaire stocke la valeur Honda dans le Name colonne. De même, la valeur du Price la colonne de la première ligne sera 10000 etc.

Écriture de données dans un fichier JSON via Python

Avec notre dictionnaire imbriqué et une liste de dictionnaires, nous pouvons stocker ces données dans un fichier JSON. Pour ce faire, nous utiliserons le json module et le dump() méthode:

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)  

Maintenant, nous avons deux fichiers JSON – patients.json et cars.json. L’étape suivante consiste à lire ces fichiers via la bibliothèque Pandas.

Si vous souhaitez en savoir plus sur la lecture et l’écriture de JSON dans un fichier dans Core Python, nous avons ce qu’il vous faut!

Lecture de fichiers JSON avec Pandas

Pour lire un fichier JSON via Pandas, nous utiliserons le read_json() et passez-lui le chemin du fichier que nous aimerions lire. La méthode renvoie un Pandas DataFrame qui stocke les données sous forme de colonnes et de lignes.

Cependant, nous devrons d’abord installer Pandas:

$ pip install pandas

Lecture de JSON à partir de fichiers locaux

Le script suivant lit le patients.json à partir d’un répertoire système local et stocke le résultat dans le patients_df trame de données. L’en-tête de la trame de données est ensuite imprimé via le head() méthode:

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

L’exécution de ce code devrait donner:
cadre de données des patients

De même, le script suivant lit le cars.json fichier à partir du système local, puis appelle le head() méthode sur le cars_df pour imprimer l’en-tête:

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

L’exécution de ce code devrait donner:
cadre de données de voitures

Lecture de JSON à partir de fichiers distants

le read_json() ne se limite pas à la lecture des fichiers locaux. Vous pouvez également lire des fichiers JSON situés sur des serveurs distants. Il vous suffit de passer le chemin du fichier JSON distant à l’appel de fonction.

Lisons et imprimons la tête de l’ensemble de données Iris – un ensemble de données très populaire contenant des informations sur diverses fleurs d’iris:

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

L’exécution de ce code devrait nous donner:
cadre de données de l'usine d'iris

Écriture de fichiers de données JSON via Pandas

Pour convertir une trame de données Pandas en un fichier JSON, nous utilisons le to_json() fonction sur la trame de données, et passez le chemin d’accès au fichier bientôt en tant que paramètre.

Créons un fichier JSON à partir du tips jeu de données, qui est inclus dans la bibliothèque Seaborn pour la visualisation des données.

Tout d’abord, installons Seaborn:

$ pip install seaborn

Ensuite, importons-le et chargeons-le dans un jeu de données:

import seaborn as sns

dataset = sns.load_dataset('tips')
dataset.head()

Voici à quoi ressemble l’ensemble de données:
en-tête de jeu de données

Seaborn’s load_dataset() la fonction renvoie un Pandas DataFrame, donc le chargement de l’ensemble de données comme celui-ci nous permet d’appeler simplement to_json() fonction pour le convertir.

Une fois que nous avons obtenu l’ensemble de données, enregistrons son contenu dans un fichier JSON. Nous avons mis en place un datasets répertoire pour cela:

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

Navigation vers le E:/datasets répertoire, vous devriez voir tips.json. En ouvrant le fichier, nous pouvons voir JSON qui correspond aux enregistrements dans la trame de données Pandas contenant le tips base de données:

{
   "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",
        ...
    }
    ...

Conclusion

JSON est un format largement utilisé pour le stockage et l’échange de données entre un client et un serveur. Les développeurs utilisent souvent ce format sur des formats comme XML en raison de sa légèreté et de sa lisibilité.

Dans cet article, nous avons expliqué comment lire et écrire des fichiers JSON à l’aide de la bibliothèque Pandas populaire de Python – des fichiers locaux aux fichiers distants.

Close Menu