如何使JSON类可序列化如何使Python类可序列化?一个简单的类:class FileItem:
def __init__(self, fname):
self.fname = fname我应该怎么做才能得到以下的输出:json.dumps()没有错误(FileItem instance at ... is not JSON serializable)
3 回答
![?](http://img1.sycdn.imooc.com/5458620000018a2602200220-100-100.jpg)
慕无忌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_hook
JSONDecoder
>>> 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
提交
取消