我们在python中有一个有趣的Pickler用例。我们正在使用具有对象引用的对象进行多处理。
在这个question about pickling member objects中,您可以看到Pickler使用其备忘录来加载原始对象而不是构建新对象。有没有办法在没有Pickling到文件的情况下使用Pickler及其备忘录?
使用示例:( A,B,C都有智能哈希和eq)
用cpickle做这一切怎么样?
答案 0 :(得分:0)
有dumps
和loads
个函数使用字符串
>>> from cPickle import dumps, loads
>>> d={'foo': 'bar'}
>>> dumps(d)
"(dp1\nS'foo'\np2\nS'bar'\np3\ns."
>>> loads(_)
{'foo': 'bar'}
您还可以将dump
/ load
与StringIO
对象一起使用
>>> from cPickle import dump, load
>>> from cStringIO import StringIO
>>> S=StringIO()
>>> d={'foo': 'bar'}
>>> dump(d, S)
>>> S
<cStringIO.StringO object at 0x20c3960>
>>> S.seek(0)
>>> load(S)
{'foo': 'bar'}