Avancé
🧠 Fondamentaux
30 XP
0 personnes ont réussi
JSONEncoder personnalise
Par défaut, json.dumps() sait serialiser les types de base Python (dict, list, str, int, float, bool, None). Mais si tu lui passes un objet custom, il leve une TypeError.
Pour gerer ca, tu peux créer un JSONEncoder personnalise en heritant de json.JSONEncoder et en surchargeant la méthode default(self, obj).
Cette méthode est appelee pour chaque objet que le serialiseur ne sait pas gerer. Tu dois retourner un type serialisable (dict, list, str...). Pour les types que tu ne geres pas non plus, tu delegues au parent avec super().default(obj).
Exemple : import json
class MonEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, set): return list(obj) return super().default(obj)