Lire, Écrire, Parse le JSON avec Python
JSON (JavaScript Object Notation) 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:
obj = '{"name":"Alex", "age":18, "ville":"Paris"}'
JSON en Python
Python a un package intégré appelé json, qui peut être utilisé pour travailler avec des données JSON.
import json
Parser JSON – Convertir du JSON en Python
Si vous avez une chaîne JSON, vous pouvez l’analyser en utilisant la méthode json.loads(). Le résultat sera un dictionnaire Python.
L’exemple suivant convertie un objet JSON en un dictionnaire Python.
import json # objet JSON: obj = '{"name":"Alex", "age":18, "ville":"Paris"}' # parser l'objet JSON: dict = json.loads(obj) # le résultat est un dictionnaire Python: print(dict["name"])
Sortie:
Alex
Convertir de Python en JSON
Si vous avez un objet Python, vous pouvez le convertir en une chaîne JSON en utilisant la méthode json.dumps().
L’exemple suivant convertie un dictionnaire Python en un objet JSON.
import json # objet Python (dictionnaire): dict = { "name": "John", "age": 18, "ville": "Paris" } # convertir en JSON obj = json.dumps(dict) # objet JSON print(obj)
Sortie:
{"age": 18, "name": "John", "ville": "Paris"}
Formater le résultat
L’exemple ci-dessus affiche une chaîne JSON, mais elle n’est pas très facile à lire, sans indentations ni sauts de ligne.
La méthode json.dumps() a des paramètres pour faciliter la lecture du résultat.
L’exemple suivant utilise le paramètre indent pour définir le nombre d’espaces:
# convertir en JSON obj = json.dumps(dict, indent=5)
Sortie:
{ "ville": "Paris", "age": 18, "name": "John" }
Vous pouvez également définir les séparateurs, la valeur par défaut est
(",", ":")
, ce qui signifie utiliser une virgule et un espace pour séparer chaque objet, et deux points et un espace pour séparer les clés des valeurs:
# convertir en JSON obj = json.dumps(dict, indent=5, separators=("; ", " -> "))
Sortie:
{ "age" -> 18; "ville" -> "Paris"; "name" -> "John" }
Triez le résultat
La méthode json.dumps() a des paramètres pour classer les clés dans le résultat. Utilisez le paramètre sort_keys pour spécifier si le résultat doit être trié ou non:
# convertir en JSON obj = json.dumps(dict, indent=5, sort_keys=True)
Sortie:
{ "age": 18, "name": "John", "ville": "Paris" }