如何在 python3 中制作莳萝负载 python2 泡菜
how to make dill load python2 pickle in python3
如果使用 pickle
腌制,则以下代码段有效。但是如果我有一个使用 dill 转储的对象,dill.load
不起作用,因为 dill.load
不接受任何 encoding
参数。有什么方法可以使用莳萝完成这项工作吗?
with open(‘py2pickle.p’,'rb') as f
data = pickle.load(f, encoding='latin1')
你在 python 2 中做了 dill.dump
,想在 python 3 中做 dill.load
。有两个问题:
没有任何保证,不管你是什么人
用于序列化 pickle 将适用于任何版本
python 与您使用的不同(即 3.7 对 3.6 对 2.7)。
如您所述,目前 dill
在 load
上没有编码参数,因此您可能需要进行一些转换 before/after 你 dump
/load
对象(直接在对象本身)。
请注意,我将在不久的将来向 dump
和 load
添加更多序列化选项参数(包括 encoding
参数)。
更新: dill
现在有一个编码参数,以及其他有助于从 2.x 到 3.x 的 pickle 转换的参数。
如果使用 pickle
腌制,则以下代码段有效。但是如果我有一个使用 dill 转储的对象,dill.load
不起作用,因为 dill.load
不接受任何 encoding
参数。有什么方法可以使用莳萝完成这项工作吗?
with open(‘py2pickle.p’,'rb') as f
data = pickle.load(f, encoding='latin1')
你在 python 2 中做了 dill.dump
,想在 python 3 中做 dill.load
。有两个问题:
没有任何保证,不管你是什么人 用于序列化 pickle 将适用于任何版本 python 与您使用的不同(即 3.7 对 3.6 对 2.7)。
如您所述,目前dill
在load
上没有编码参数,因此您可能需要进行一些转换 before/after 你dump
/load
对象(直接在对象本身)。
请注意,我将在不久的将来向 dump
和 load
添加更多序列化选项参数(包括 encoding
参数)。
更新: dill
现在有一个编码参数,以及其他有助于从 2.x 到 3.x 的 pickle 转换的参数。