Dans ce didacticiel, vous apprendrez à analyser, lire et écrire du JSON en Python à l'aide d'exemples. En outre, vous apprendrez à convertir JSON en dict et à l'imprimer.
JSON ( J ava S cript O bjet N ottaison) est un format de données populaire utilisé pour représenter des données structurées. Il est courant de transmettre et de recevoir des données entre un serveur et une application Web au format JSON.
En Python, JSON existe sous forme de chaîne. Par exemple:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Il est également courant de stocker un objet JSON dans un fichier.
Importer le module json
Pour travailler avec JSON (chaîne ou fichier contenant un objet JSON), vous pouvez utiliser le json
module de Python . Vous devez importer le module avant de pouvoir l'utiliser.
import json
Analyser JSON en Python
Le json
module facilite l'analyse des chaînes JSON et des fichiers contenant un objet JSON.
Exemple 1: Python JSON à dict
Vous pouvez analyser une chaîne JSON à l'aide de json.loads()
method. La méthode renvoie un dictionnaire.
import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))
Ici, personne est une chaîne JSON et person_dict est un dictionnaire.
Exemple 2: Python lit un fichier JSON
Vous pouvez utiliser la json.load()
méthode pour lire un fichier contenant un objet JSON.
Supposons que vous ayez un fichier nommé person.json
qui contient un objet JSON.
("name": "Bob", "languages": ("English", "Fench") )
Voici comment vous pouvez analyser ce fichier:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Ici, nous avons utilisé la open()
fonction pour lire le fichier json. Ensuite, le fichier est analysé à l'aide de la json.load()
méthode qui nous donne un dictionnaire nommé data.
Si vous ne savez pas comment lire et écrire des fichiers en Python, nous vous recommandons de vérifier les E / S de fichiers Python.
Python Convertir en chaîne JSON
Vous pouvez convertir un dictionnaire en chaîne JSON à l'aide de json.dumps()
method.
Exemple 3: Convertir dict en JSON
import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json)
Voici un tableau montrant les objets Python et leur conversion équivalente en JSON.
Python | Équivalent JSON |
---|---|
dict | objet |
list , tuple | tableau |
str | chaîne |
int , float ,int | nombre |
True | vrai |
False | faux |
None | nul |
Ecrire du JSON dans un fichier
Pour écrire JSON dans un fichier en Python, nous pouvons utiliser la json.dump()
méthode.
Exemple 4: écriture de JSON dans un fichier
import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file)
Dans le programme ci-dessus, nous avons ouvert un fichier nommé person.txt
en mode écriture en utilisant 'w'
. Si le fichier n'existe pas déjà, il sera créé. Ensuite, se json.dump()
transforme person_dict
en une chaîne JSON qui sera enregistrée dans le person.txt
fichier.
Lorsque vous exécutez le programme, le person.txt
fichier est créé. Le fichier contient le texte suivant.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
JSON JSON Joli imprimé Python
Pour analyser et déboguer les données JSON, nous pouvons avoir besoin de les imprimer dans un format plus lisible. Cela peut être fait en passant des paramètres supplémentaires indent
et sort_keys
à json.dumps()
et json.dump()
méthode.
Exemple 5: Python pretty print JSON
import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True))
Lorsque vous exécutez le programme, la sortie sera:
("languages": "English", "name": "Bob", "numbers": (2, 1.6, null))
Dans le programme ci-dessus, nous avons utilisé des 4
espaces pour l'indentation. Et les clés sont triées par ordre croissant.
À propos, la valeur par défaut de indent est None
. Et, la valeur par défaut de sort_keys est False
.
Lectures recommandées:
- Python JSON en CSV et vice-versa
- XML Python vers JSON et vice-versa
- Python simplejson