logo oujood
🔍

JSON en Python : analyser, lire et écrire

JSON (JavaScript Object Notation) est un format texte utilisé pour échanger des données structurées entre applications. En Python, le module json intégré permet de convertir des chaînes JSON en dictionnaires et inversement.

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.

  📋 Copier le code

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.

  📋 Copier le code

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().

  📋 Copier le code

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.

  📋 Copier le code

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.

  📋 Copier le code

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)

  📋 Copier le code

# 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.

  📋 Copier le code

# 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.

  📋 Copier le code

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)

  📋 Copier le code

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