我使用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/