OUJOOD.COM
Importer le module json
Le module json fait partie de la bibliothèque standard Python — pas besoin de l'installer. Il suffit de l'importer en début de fichier pour avoir accès à toutes ses fonctions.
import json
Convertir une chaîne JSON en dictionnaire Python
La méthode json.loads() analyse une chaîne JSON et retourne un dictionnaire Python. C'est la fonction à utiliser quand on reçoit du JSON depuis une API ou une autre source texte.
import json # Chaîne JSON reçue (depuis une API par exemple) personne = '{"nom": "Bakr", "langues": ["Anglais", "Français"]}' # json.loads() convertit la chaîne en dictionnaire Python personne_dict = json.loads(personne) print(personne_dict) # {'nom': 'Bakr', 'langues': ['Anglais', 'Français']} print(f"Nom : {personne_dict['nom']}") print(f"Langues : {personne_dict['langues']}")
Après conversion, personne_dict est un dictionnaire Python ordinaire. On peut accéder à ses clés, le parcourir, le modifier comme n'importe quel dict.
Lire un fichier JSON
Pour lire un fichier .json depuis le disque, on utilise json.load() (sans le s). On ouvre le fichier avec open(), puis on passe le handle de fichier directement à json.load().
import json # Ouverture et lecture du fichier personne.json with open('personne.json', 'r') as f: data = json.load(f) print(data) # {'nom': 'Bakr', 'langues': ['Anglais', 'Français']}
Pour en savoir plus sur la lecture et l'écriture de fichiers en Python : tutoriel sur la gestion des fichiers.
Convertir un dictionnaire Python en chaîne JSON
json.dumps() fait l'opération inverse : il prend un dictionnaire Python et retourne une chaîne JSON. Les types Python sont convertis automatiquement — True devient true, None devient null, les tuples deviennent des tableaux JSON.
import json
personne_dict = {
"nom": "Bakr",
"age": 35,
"marie": True,
"divorce": False,
"enfants": ("Anne", "Sofie"),
"animaux": None,
"voitures": [
{"modele": "BMW 230", "consommation": 7.5},
{"modele": "Ford Edge", "consommation": 10.1}
]
}
# Conversion en chaîne JSON
personne_json = json.dumps(personne_dict)
print(personne_json)
Formater le résultat avec indent et separators
Par défaut, json.dumps() produit une chaîne sur une seule ligne, difficile à lire. Le paramètre indent ajoute de l'indentation. Le paramètre separators permet de personnaliser les délimiteurs entre éléments et entre clés et valeurs.
import json
personne_dict = {
"nom": "Bakr",
"age": 35,
"statut": "marie",
"enfants": ("Anne", "Sofie"),
"animaux": None,
"voitures": [
{"modele": "BMW 230", "consommation": 7.5},
{"modele": "Ford Edge", "consommation": 10.1}
]
}
# indent=4 : indentation de 4 espaces pour la lisibilité
personne_json = json.dumps(personne_dict, indent=4)
print(personne_json)
# separators : personnaliser les délimiteurs (objet, clé=valeur)
personne_json = json.dumps(personne_dict, indent=4, separators=(". ", " = "))
print(personne_json)
Trier les clés avec sort_keys
Le paramètre sort_keys=True trie les clés du résultat JSON par ordre alphabétique. Utile pour produire une sortie déterministe, notamment lors de tests ou de comparaisons.
# sort_keys=True : les clés sont triées alphabétiquement
personne_json = json.dumps(personne_dict, indent=4, sort_keys=True)
print(personne_json)
Écrire du JSON dans un fichier
Deux méthodes permettent d'écrire un dictionnaire Python dans un fichier JSON. La première utilise json.dumps() pour produire la chaîne, puis write() pour l'écrire. La seconde utilise json.dump() qui écrit directement dans le fichier sans passer par une chaîne intermédiaire.
import json
dictionnaire = {
"nom": "bakr",
"age": 56,
"nbr_enfants": 2,
"phone": "9976770500"
}
# Méthode 1 : json.dumps() + write()
json_object = json.dumps(dictionnaire, indent=4)
with open("exemple.json", "w") as outfile:
outfile.write(json_object)
import json
dictionnaire = {
"nom": "bakr",
"age": 56,
"nbr_enfants": 2,
"phone": "9976770500"
}
# Méthode 2 : json.dump() écrit directement dans le fichier
with open("exemple.json", "w") as outfile:
json.dump(dictionnaire, outfile)
Dans les deux cas, si le fichier exemple.json n'existe pas, Python le crée automatiquement. S'il existe, son contenu est écrasé.
Par carabde | Mis à jour le 24 avril 2026