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

 

A propos de l'auteur

Guillaume Cochet

Guillaume Cochet est consultant SEO à l'agence de Référencement Aseox à Lille.