【问题标题】:Error on deserialization with pickle python使用pickle python反序列化时出错
【发布时间】:2012-05-29 10:40:51
【问题描述】:

我是 python 新手。我有一个文件data.pkl。我想做的是从文件中获取数据。我查看了http://docs.python.org/library/pickle.html,11.1.7 示例并尝试了该示例。 我的代码如下所示:

import pprint, pickle

pkl_file = open('data.pkl', 'rb')

data1 = pickle.load(pkl_file)
pprint.pprint(data1)

pkl_file.close()

但它给了我错误:

Traceback (most recent call last):
  File "/home/sadiksha/workspace/python/test.py", line 5, in <module>
    data1 = pickle.load(pkl_file)
  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)
  File "/usr/lib/python2.7/pickle.py", line 966, in load_string
    raise ValueError, "insecure string pickle"

谁能告诉我我在这里做错了什么?

【问题讨论】:

  • 你是如何创建 data.pkl 文件的?
  • 已经提供给我了!
  • 那么,它是如何由创建它的人创建的?你确定它被正确腌制和保存了吗?

标签: python pickle


【解决方案1】:

您的 pickle 文件似乎没有正确写入(指定“wb”)或文件已损坏。尝试创建自己的 pickle 文件并将其读回。这应该可以解决问题。

至于指定的pickle文件,肯定是损坏了。

【讨论】:

  • 是的,您是对的,文件已损坏。它正在将新行解析为 '\r' 这给出了错误!
猜你喜欢
  • 2011-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多