Rappel json (lib standard json). Sert à sérialiser des structures Python en texte pour les stocker ou les transmettre.
Correspondance json ↔ Python :
object { } ↔ dict
array [ ] ↔ list
string ↔ str
number ↔ int / float
true/false ↔ True / False
null ↔ Nonejson.loads(s) parse une str JSON → objet Python
json.load(f) parse un fichier ouvert
json.dumps(obj) sérialise un objet → str JSON
json.dump(obj, f) écrit dans un fichierMnémo : le 's' à la fin = string.
import jsondata = {
'utilisateurs': [
{'nom': 'Alice', 'age': 25, 'scores': [85, 90, 78]},
{'nom': 'Bob', 'age': 30, 'scores': [92, 88, 95]}
]
}json_str = json.dumps(data, ensure_ascii=False, indent=2)
print(json_str)Paramètres utiles de dumps :
indent=2 joliment formaté
ensure_ascii=False garde les accents (sinon \u00e9 etc.)
sort_keys=True trie les clésparsed = json.loads(json_str)
for user in parsed['utilisateurs']:
avg = sum(user['scores']) / len(user['scores'])
print(f"{user['nom']}: moyenne = {avg:.1f}")# Écrire
with open('out.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)# Lire
with open('out.json', 'r', encoding='utf-8') as f:
data = json.load(f)json ne sait pas sérialiser : datetime, set, numpy arrays...
json.dumps(set([1,2,3])) ❌ TypeError
json.dumps(list(set([1,2,3]))) ✅
json.dumps(date, default=str) ✅ convertit en str via str(date)Pour de la doc api ou de la config, json est un standard universel. Pour des types Python plus riches (datetime, custom), pickle est plus puissant mais non portable (Python-only, et risque de sécurité si tu charges du pickle d'origine inconnue).
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →