Python JSON: lire, écrire, analyser JSON (avec des exemples)

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 jsonmodule de Python . Vous devez importer le module avant de pouvoir l'utiliser.

 import json

Analyser JSON en Python

Le jsonmodule 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.jsonqui 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.txten mode écriture en utilisant 'w'. Si le fichier n'existe pas déjà, il sera créé. Ensuite, se json.dump()transforme person_dicten une chaîne JSON qui sera enregistrée dans le person.txtfichier.

Lorsque vous exécutez le programme, le person.txtfichier 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 indentet 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 4espaces 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

Articles intéressants...