JSON
Utiliser le JSON avec Python
JSON est une syntaxe pour le stockage et l'échange de données.
Python a un package intégré appelé json, qui peut être utilisé pour travailler avec ce type de données.
Importer le module json avec Python :
import json
Parse JSON - Convertir JSON en Python
Si vous avez une chaîne JSON, vous pouvez l'analyser en utilisant la méthode json.loads().
import json
# Données JSON:
x = '{ "name":"Paul", "age":21, "city":"Lille"}'
# parse x:
y = json.loads(x)
# Python renvoie un dictionnaire:
print(y["age"])
Convertir Python en JSON
Si vous avez un objet Python, vous pouvez le convertir en chaîne JSON en utilisant la méthode json.dumps().
import json
# a Python object (dict):
x = {
"name": "Paul",
"age": 21,
"city": "Lille"
}
# Conversion en JSON:
y = json.dumps(x)
# Le résultat est une chaîne de caractères:
print(y)
Vous pouvez convertir les objets Python des types suivants en chaînes JSON :
- dict
 - list
 - tuple
 - int
 - float
 - string
 - True
 - False
 - None
 
Convertir les objets Python en chaînes JSON, et afficher les valeurs :
import json
print(json.dumps({"name": "Paul", "age": 21}))
print(json.dumps(["lion", "tigre"]))
print(json.dumps(("lion", "tigre")))
print(json.dumps("Coucou"))
print(json.dumps(85))
print(json.dumps(21.36))
print(json.dumps(True))
print(json.dumps(False))
print(json.dumps(None))
Lorsque vous convertissez de Python en JSON, les objets Python sont convertis en équivalent JSON (JavaScript) :
| Python | JSON | 
|---|---|
| dict | Objet | 
| list | Tableau | 
| tuple | Tableau | 
| str | Chaîne de caractères | 
| int | Nombre | 
| float | Nombre | 
| True | Vrai | 
| False | Faux | 
| None | null | 
Convertir un objet Python contenant tous les formats :
import json
x = {
"name": "Pierre",
"age": 41,
"married": True,
"divorced": False,
"children": ("Paul","Jacques"),
"pets": None,
"cars": [
{"model": "BMW 230", "mpg": 27.5},
{"model": "Ford Edge", "mpg": 24.1}
]
}
print(json.dumps(x))
Formater le résultat
L'exemple ci-dessus imprime une chaîne JSON, mais elle n'est pas très facile à lire, sans indentation ni saut de ligne.
La méthode json.dumps() permet de faciliter la lecture du résultat.
Utilisez le paramètre indent pour définir le nombre d'indentations :
json.dumps(x, indent=4)
Vous pouvez également définir les séparateurs, la valeur par défaut est (", ", ", " : "), c'est à dire une virgule et un espace pour séparer chaque objet, et deux points et un espace pour séparer les clés des valeurs :
json.dumps(x, indent=4, separators=(". ", " = "))
Trier le résultat
La méthode json.dumps() permet d'ordonner les résultats.
Utilisez le paramètre sort_keys pour spécifier si le résultat doit être trié ou non :
json.dumps(x, indent=4, sort_keys=True)
Article précédent


