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中文网其他相关文章!