Maison >développement back-end >Tutoriel Python >Comment puis-je sérialiser des classes Python personnalisées en JSON ?
Les classes Python ne peuvent pas être sérialisées de manière native en JSON. Considérons la classe suivante :
class FileItem: def __init__(self, fname): self.fname = fname
Cette classe ne peut pas être directement sérialisée en JSON :
>>> import json >>> x = FileItem('/foo/bar') >>> json.dumps(x) TypeError: Object of type 'FileItem' is not JSON serializable
Pour résoudre ce problème, une approche consiste à implémenter un méthode de sérialisation :
toJSON() Méthode
import json class Object: def toJSON(self): return json.dumps( self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
Avec cette méthode en place, vous pouvez sérialiser la classe :
me = Object() me.name = "Onur" me.age = 35 me.dog = Object() me.dog.name = "Apollo" print(me.toJSON())
Cela affichera le JSON suivant :
{ "age": 35, "dog": { "name": "Apollo" }, "name": "Onur" }
Bibliothèque supplémentaire
Pour une solution plus complète, vous pouvez utiliser l'orjson bibliothèque.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!