首页 >后端开发 >Python教程 >如何使我的 Python 类 JSON 可序列化?

如何使我的 Python 类 JSON 可序列化?

Patricia Arquette
Patricia Arquette原创
2024-12-21 14:38:15144浏览

How Can I Make My Python Classes JSON Serializable?

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn