Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya Boleh Mensiri Kelas Python Tersuai ke JSON?
Kelas Python tidak boleh disirikan secara asli kepada JSON. Pertimbangkan kelas berikut:
class FileItem: def __init__(self, fname): self.fname = fname
Kelas ini tidak boleh bersiri terus kepada JSON:
>>> import json >>> x = FileItem('/foo/bar') >>> json.dumps(x) TypeError: Object of type 'FileItem' is not JSON serializable
Untuk menyelesaikan isu ini, satu pendekatan adalah dengan melaksanakan kaedah serializer:
toJSON() Kaedah
import json class Object: def toJSON(self): return json.dumps( self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
Dengan kaedah ini sedia ada, anda boleh membuat siri kelas:
me = Object() me.name = "Onur" me.age = 35 me.dog = Object() me.dog.name = "Apollo" print(me.toJSON())
Ini akan mengeluarkan JSON berikut:
{ "age": 35, "dog": { "name": "Apollo" }, "name": "Onur" }
Perpustakaan Tambahan
Untuk penyelesaian yang lebih komprehensif, anda boleh menggunakan orjson perpustakaan.
Atas ialah kandungan terperinci Bagaimanakah saya Boleh Mensiri Kelas Python Tersuai ke JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!