将pickle文件从协议3转换为协议2

时间:2019-02-12 18:14:51

标签: python-3.x protocols pickle

我使用协议3(python3使用的默认协议)转储了一个pickle文件,但是在将其部署到可在python2上运行的Google云中时,因此我需要将pickle文件转换为协议2。现在我想直接将协议3的泡菜文件转换为协议2的泡菜文件。怎么办?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下类似方法吗?

我没有在标准中找到任何直接转换器。可能有人可以。

将文件加载到对象obj中,然后执行以下操作。

pickle.dump(obj, fileObject, 2)  

有一个传递给转储功能的选项:

https://docs.python.org/3.1/library/pickle.html#pickle.dump

粗略代码:

import pickle

with open('data1.pickle', 'rb') as f1:
    data = pickle.load(f1)

with open('data2.pickle', 'wb') as f2:
    pickle.dump(data, f2, 2)