Python 類別本身無法序列化為 JSON。考慮以下類別:
class FileItem: def __init__(self, fname): self.fname = fname
該類別無法直接序列化為JSON:
>>> import json >>> x = FileItem('/foo/bar') >>> json.dumps(x) TypeError: Object of type 'FileItem' is not JSON serializable
要解決此問題,一種方法是實現序列化方法:
toJSON()方法
import json class Object: def toJSON(self): return json.dumps( self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
使用此方法,您可以序列化類別:
me = Object() me.name = "Onur" me.age = 35 me.dog = Object() me.dog.name = "Apollo" print(me.toJSON())
這將輸出以下JSON:
{ "age": 35, "dog": { "name": "Apollo" }, "name": "Onur" }
附加庫
要獲得更全面的解決方案,您可以使用orjson 庫。
以上是如何將自訂 Python 類別序列化為 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!