Lire, écrire et analyser JSON à l'aide de Python
JSON est un format de données léger pour l'échange de données qui peut être facilement lu et écrit par des humains, et facilement analysé et généré par des machines. Il s'agit d'un format de texte complet, indépendant de la langue. Pour travailler avec des données JSON, Python dispose d'un package intégré appelé JSON.
Exemple de chaîne JSON
s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}' La syntaxe de JSON est considéré comme un sous-ensemble de la syntaxe de Javascript y compris les éléments suivants :
- Paires nom/valeur : Représente des données, le nom est suivi de deux points ( : ), et les paires Nom/Valeur sont séparées par une virgule ( , ).
- Accolades: Contient des objets.
- Crochets: Contient des tableaux avec des valeurs séparées par une virgule ( , ).
Les clés/nom doivent être des chaînes avec des guillemets doubles et les valeurs doivent être des types de données parmi les suivants :
Exemple de fichier JSON :
{ 'employee': [ { 'id': '01', 'name': 'Amit', 'department': 'Sales' }, { 'id': '04', 'name': 'sunil', 'department': 'HR' } ] } Python Analyser la chaîne JSON
Dans le code ci-dessous, nous allons convertir JSON en objet Python. Pour analyser la chaîne JSON Python, nous importons d'abord le module JSON. Nous avons une chaîne JSON stockée dans une variable 'employé' et nous convertissons cette chaîne JSON en un objet Python en utilisant json.loads() méthode du module JSON en Python. Après cela, nous imprimons le nom d'un employé en utilisant la clé « nom » .
Python3
# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> print> (employee_dict)> print> (employee_dict[> 'name'> ])> |
Sortir
{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin Python lit le fichier JSON
Supposons que nous ayons un fichier JSON qui ressemble à ceci.
Ici, nous avons utilisé la fonction open() pour lire le fichier JSON. Ensuite, le fichier est analysé à l'aide de la méthode json.load() qui nous donne un dictionnaire nommé data.
Python3
import> json> # Opening JSON file> f> => open> (> 'data.json'> ,)> # returns JSON object as> # a dictionary> data> => json.load(f)> # Iterating through the json> # list> for> i> in> data[> 'emp_details'> ]:> > print> (i)> # Closing file> f.close()> |
Sortir:
Convertir Python Dict en JSON
Dans le code ci-dessous, nous convertissons un Dictionnaire Python à un objet JSON en utilisant json.dumps() méthode du module JSON en Python. Nous importons d'abord le module JSON, puis créons un petit dictionnaire avec quelques paires clé-valeur, puis le transmettons à la méthode json.dumps() avec « indent=4 » pour convertir ce dictionnaire Python en un objet JSON. Comme nous avons donné la valeur de indent à 4, il y a quatre espaces avant chaque donnée, comme on le voit dans la sortie.
Python3
# Python program to convert> # Python to JSON> import> json> > # Data to be written> dictionary> => {> > 'id'> :> '04'> ,> > 'name'> :> 'sunil'> ,> > 'department'> :> 'HR'> }> > # Serializing json> json_object> => json.dumps(dictionary, indent> => 4> )> print> (json_object)> |
Sortir
{ 'id': '04', 'name': 'sunil', 'department': 'HR' } Les types d'objets Python suivants peuvent être convertis en chaînes JSON :
Objets Python et leur conversion équivalente en JSON :
| Python | Équivalent JSON |
|---|---|
| dicter | objet |
| liste, tuple | tableau |
| str | chaîne |
| int, flotter | nombre |
| Vrai | vrai |
| FAUX | FAUX |
| Aucun | nul |
Écrire JSON dans un fichier en Python
Nous pouvons écrire JSON dans un fichier en utilisant la fonction json.dump() du module JSON et la gestion des fichiers en Python. Dans le programme ci-dessous, nous avons ouvert un fichier nommé sample.json en mode écriture en utilisant 'Dans' . Le fichier sera créé s'il n'existe pas. Json.dump() transformera le dictionnaire Python en chaîne JSON et il sera enregistré dans le fichier sample.json.
Python3
# Python program to write JSON> # to a file> import> json> > # Data to be written> dictionary> => {> > 'name'> :> 'sathiyajith'> ,> > 'rollno'> :> 56> ,> > 'cgpa'> :> 8.6> ,> > 'phonenumber'> :> '9976770500'> }> > with> open> (> 'sample.json'> ,> 'w'> ) as outfile:> > json.dump(dictionary, outfile)> |
Sortir:
Python jolie impression JSON
Lorsque nous convertissons une chaîne en JSON, les données sont dans un format moins lisible. Pour le rendre plus lisible, nous pouvons utiliser une jolie impression en passant des arguments supplémentaires dans la fonction json.dumps() tels que retrait et clés_de_sort tel qu'utilisé dans le code ci-dessous.
Python3
# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> # Pretty Printing JSON string back> print> (json.dumps(employee_dict, indent> => 4> , sort_keys> => True> ))> |
Sortir
{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }