如何使JSON類可序列化如何使Python類可序列化?一個簡單的類:class FileItem:
def __init__(self, fname):
self.fname = fname我應(yīng)該怎么做才能得到以下的輸出:json.dumps()沒有錯誤(FileItem instance at ... is not JSON serializable)
3 回答

慕無忌1623718
TA貢獻1744條經(jīng)驗 獲得超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
提交
取消