如何使 Python 类可序列化?
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
原文由 Sergey 发布,翻译遵循 CC BY-SA 4.0 许可协议
你对预期的输出有什么想法吗?例如,这会做吗?
在这种情况下,您只能调用
json.dumps(f.__dict__)
。如果您想要更多自定义输出,那么您必须
JSONEncoder
并实现您自己的自定义序列化。举个简单的例子,见下文。
然后将此类传递给
json.dumps()
方法为cls
kwarg:如果您还想解码,则必须为
JSONDecoder
类提供自定义object_hook
。例如: