如果使用pickle
进行腌制,则遵循以下代码段即可。但是如果我有一个使用莳萝转储的对象,则dill.load
不起作用,因为dill.load
不接受任何encoding
参数。有什么办法可以使用莳萝来完成这项工作?
with open(‘py2pickle.p’,'rb') as f
data = pickle.load(f, encoding='latin1')
答案 0 :(得分:1)
您在python 2中做了dill.dump
,并且想在python 3中做了dill.load
。有两个问题:
无论您是谁,都无法保证 用于序列化,泡菜可与任何版本的 python,而不是您使用的python(即3.7 vs 3.6 vs 2.7)。
,目前 dill
在load
上没有编码参数,因此您可能必须在dump
之前/之后进行一些转换。 / load
对象(直接在对象本身上)。
请注意,我将在不久的将来向 dump
和load
添加更多的序列化选项参数(包括encoding
参数)。
更新:dill
现在具有一个编码参数,以及其他参数来帮助将酱菜从2.x转换为3.x。