Pickle - cPickle.UnpicklingError:加载键无效,'?'

新手上路,请多包涵

我试图通过使用此存储库加载数据(最初使用一些 Python 2 ):

https://github.com/hashbangCoder/Text-Summarization

但是我遇到了一个酸洗错误(使用 Python 2.7 ,我也尝试了 Python2.6 并得到了相同的结果):

 >>> import cPickle as pickle
>>> pickle.load(open('train.bin', 'rb'))

错误:

 Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
cPickle.UnpicklingError: invalid load key, '?'.

我也尝试使用 Python3 但没有成功(同样适用于 _pickle ):

 import pickle
pickle.load(open(path, 'rb'))

错误:

 ---------------------------------------------------------------------------
UnpicklingError                           Traceback (most recent call last)
<ipython-input-9-0129e43fa781> in <module>()
----> 1 data = pickle.load(open(path, 'rb'), encoding='utf8')

UnpicklingError: invalid load key, '\xd9'.

有很多问题可以解决这个错误,但我还没有找到任何可以解决我的问题的方法。

我也在不同的系统上尝试过并下载了两次以确保文件在下载过程中没有损坏。对于其他文件,我也遇到了类似的错误。

所以我想这可能是某种版本或编码问题?

知道我可以尝试加载文件吗?

提前致谢!

原文由 MBT 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 859
1 个回答

我最近在尝试解开文件时遇到了这个问题……尝试使用 joblib 代替:

 fname = 'Path_to_filename.pkl'
model = joblib.load(open(fname, 'rb'))

否则 - 它可能是损坏的文件。

原文由 JoeShmo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题