Python 使用pickle.load时返回Unpickler(file).load()错误

Python 使用pickle.load时返回Unpickler(file).load()错误,python,Python,我正在使用pickle读取文件。下面是代码 import pickle fil = open("check", "rb") res = pickle.load(fil) print res fil.close() 我得到的错误是 File "inter.txt", line 20, in <module> res = pickle.load(fil) File "C:\Python27\lib\pickle.py", line 1378, in load

我正在使用pickle读取文件。下面是代码

import pickle
fil = open("check", "rb")
res = pickle.load(fil)

print res

fil.close()
我得到的错误是

  File "inter.txt", line 20, in <module>
    res = pickle.load(fil)
  File "C:\Python27\lib\pickle.py", line 1378, in load
    return Unpickler(file).load()
  File "C:\Python27\lib\pickle.py", line 858, in load
    dispatch[key](self)
KeyError: '{'
如何使用pickle读取文件

您正试图使用pickle加载JSON文件

,而不是JSON

下面是用pickle和json转储的相同的{'foo':'bar'}dict:

泡菜:

JSON:

正如您所看到的,pickle的序列化实际上与JSON格式不同


改为使用json.loadfilehandler。

您的检查文件似乎不是有效的pickle文件。你能粘贴它的内容吗?什么是有效的pickle文件。它是一个json格式的文件structure@Nitesh然后您需要使用json.load加载它,而不是pickle模块。我们不能使用pickle读取所有文件吗?是否有它可以读取的特定pickle文件?是的,有。这叫泡菜。
(dp0
S'foo'
p1
S'bar'
p2
s.
{"foo": "bar"}