Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich benutzerdefinierte Python-Klassen in JSON serialisieren?
Python-Klassen können nicht nativ in JSON serialisiert werden. Betrachten Sie die folgende Klasse:
class FileItem: def __init__(self, fname): self.fname = fname
Diese Klasse kann nicht direkt in JSON serialisiert werden:
>>> import json >>> x = FileItem('/foo/bar') >>> json.dumps(x) TypeError: Object of type 'FileItem' is not JSON serializable
Um dieses Problem zu beheben, besteht ein Ansatz darin, a zu implementieren Serialisierungsmethode:
toJSON() Methode
import json class Object: def toJSON(self): return json.dumps( self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
Mit dieser Methode können Sie die Klasse serialisieren:
me = Object() me.name = "Onur" me.age = 35 me.dog = Object() me.dog.name = "Apollo" print(me.toJSON())
Dadurch wird das folgende JSON ausgegeben:
{ "age": 35, "dog": { "name": "Apollo" }, "name": "Onur" }
Zusätzliche Bibliothek
Für eine umfassendere Lösung können Sie orjson verwenden Bibliothek.
Das obige ist der detaillierte Inhalt vonWie kann ich benutzerdefinierte Python-Klassen in JSON serialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!