【发布时间】:2017-02-07 19:39:06
【问题描述】:
我在尝试腌制一个相当复杂的对象时遇到了jsonpickle 的异常,不幸的是我不知道如何在这里描述。我知道这很难说太多,但它的价值:
>>> frozen = jsonpickle.encode(my_complex_object_instance)
>>> thawed = jsonpickle.decode(frozen)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/jsonpickle/__init__.py",
line 152, in decode
return unpickler.decode(string, backend=backend, keys=keys)
:
:
File "/Library/Python/2.7/site-packages/jsonpickle/unpickler.py",
line 336, in _restore_from_dict
instance[k] = value
File "/Library/Python/2.7/site-packages/botocore/vendored/requests/packages/urllib3/packages/ordered_dict.py",
line 49, in __setitem__
root = self.__root
AttributeError: 'OrderedDict' object has no attribute '_OrderedDict__root'
我在谷歌上搜索错误时找不到太多帮助。我确实看到在过去的某个时间,对于更简单的对象,同样的问题得到了解决:
https://github.com/jsonpickle/jsonpickle/issues/33
该报告中引用的示例对我有用:
>>> jsonpickle.decode(jsonpickle.encode(collections.OrderedDict()))
OrderedDict()
>>> jsonpickle.decode(jsonpickle.encode(collections.OrderedDict(a=1)))
OrderedDict([(u'a', 1)])
有没有人自己遇到过这个问题并找到了解决方案?我的理解是,我的案例可能与另一个已知示例“不同”。
【问题讨论】:
标签: python attributeerror ordereddictionary jsonpickle