python - 尝试 unpickle 列表时出现 KeyError

标签 python pickle

我有一个文件,其中包含 float 列表的 pickle 列表。我可以在 pickle 它的同一台机器上毫无问题地加载列表,但是当我在另一台机器上尝试它时,出现以下错误:

Traceback (most recent call last):
File "<console>", line 2, in <module>
File "/usr/lib/python2.7/pickle.py", line 1378, in load
  return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 858, in load
  dispatch[key](self)
KeyError: '\x00'

这两个 python 版本是 2.7.0(在原始机器上)和 2.7.2(在尝试解封文件的机器上)。我认为不应该因此而出现任何不兼容。

最佳答案

我遇到了同样的问题,并尝试了很多方法,但都是徒劳。最后我使用了cPickle,问题解决了。只需将“pickle”替换为“cPickle”即可,一切正常。它具有完全相同的方法和参数。

import cPickle

cPickle.dump()

cPickle.load()

关于python - 尝试 unpickle 列表时出现 KeyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762999/

相关文章:

python - 如何对 ipywidgets 交互式小部件( slider )中的键名进行排序?

python - 删除Qlabel中不必要的空白

python - 将 ddp 后端与 PyTorch Lightning 一起使用时,在整个验证集上进行验证

python - 将行与引用行 pandas 进行比较

python - setup.py 用于依赖于 cython 和 f2py 的包

python - python 中的 Pickle 和 exec

python - 使用 cPickle 在 2.4 中 pickle array.array

python - 如何获取所有 pickle 数据

python - 在 Linux 系统上存储 Python 数据

python - 在 __init__ 函数中从 pickle 初始化对象