如何使JSON类可序列化如何使Python类可序列化?一个简单的类:class FileItem:
def __init__(self, fname):
self.fname = fname我应该怎么做才能得到以下的输出:json.dumps()没有错误(FileItem instance at ... is not JSON serializable)
3 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
>>> f = FileItem("/foo/bar")>>> magic(f)'{"fname": "/foo/bar"}'json.dumps(f.__dict__).
JSONEncoder
>>> from json import JSONEncoder>>> class MyEncoder(JSONEncoder):
def default(self, o):
return o.__dict__
>>> MyEncoder().encode(f)'{"fname": "/foo/bar"}'json.dumps()cls
json.dumps(cls=MyEncoder)
object_hookJSONDecoder
>>> def from_json(json_object):
if 'fname' in json_object:
return FileItem(json_object['fname'])>>> f = JSONDecoder(object_hook = from_json).decode('{"fname": "/foo/bar"}')
>>> f<__main__.FileItem object at 0x9337fac>>>>添加回答
举报
0/150
提交
取消
