使 Python 类 JSON 可序列化
序列化允许将对象转换为适合持久或传输的格式。在 JSON 中序列化自定义类通常会导致 TypeError,因为它们的非 JSON 可序列化性质。
实现 toJSON() 方法
一种方法是创建一个类的 toJSON() 方法,手动处理其序列化。这需要实现自定义 JSON 序列化函数并确保正确处理嵌套对象。
import json class FileItem: def __init__(self, fname): self.fname = fname def toJSON(self): return json.dumps(self.__dict__) x = FileItem('/foo/bar') print(x.toJSON()) # Outputs: '{"fname": "/foo/bar"}'
使用 orjson 库
要获得全面的解决方案,请考虑使用 orjson库,它提供了一种高效且可定制的方法来将自定义类序列化为 JSON。它提供了高级功能,例如架构强制和对复杂对象结构的支持。
import orjson @orjson.dataclass class FileItem: fname: str x = FileItem('/foo/bar') json_bytes = orjson.dumps(x) # Returns a byte string print(json_bytes.decode()) # Outputs: '{"fname": "/foo/bar"}'
结论
使用自定义 toJSON() 方法或 orjson 库提供了方便的解决方案用于将 Python 类序列化为 JSON。这两种方法都确保对象可以以 JSON 格式有效表示和传输。
以上是如何使我的 Python 类 JSON 可序列化?的详细内容。更多信息请关注PHP中文网其他相关文章!