python - ValueError: unsupported pickle protocol: 3、python2 pickle无法加载python 3 pickle转储的文件?

标签 python python-3.x python-2.7 pickle valueerror

我使用pickle在python 3上转储文件,我使用pickle在python 2上加载文件,出现ValueError。

那么,python 2 pickle 无法加载 python 3 pickle 转储的文件?

如果我想要?怎么办?

最佳答案

您应该在 Python 3 中使用较低的协议(protocol)编号编写 pickle 数据。Python 3 引入了编号为 3 的新协议(protocol)(并将其用作默认值),因此切换回值2 可以被 Python 2 读取。

检查pickle.dump中的protocol参数.您生成的代码将如下所示。

pickle.dump(your_object, your_file, protocol=2)

pickle.load 中没有protocol参数因为 pickle 可以从文件中确定协议(protocol)。

关于python - ValueError: unsupported pickle protocol: 3、python2 pickle无法加载python 3 pickle转储的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25843698/

相关文章:

python - 如何访问带有冒号的字典键

python - django forms.CharField 如何生成所需的输入?

python - Django 模型不会使用 .update() 进行更新

python - 如何访问和打印存储在字典中的类的对象?

django - 从具有多对多关系django的两个表中过滤数据

python - 随机数生成 python 3.x 默认库

python - 正则表达式组引用长度

python - Django 'likes' - ManyToManyField 与新模型

python - 返回所有相等的列

python - 如何使用网络爬虫从 URL 中获取正确的 Python 源代码?