大家好,我使用下面的代码
为文件挑选了一个字典列表fd = open(file_name,'ab')
for i in listOFDicts:
pickle.dump(i,fd)
fd.close()
然后现在我想使用下面的代码加载它
with open(filename, 'rb') as pickleFile:
content = pickle.loads(pickleFile)
我收到此错误"需要类似字节的对象,而不是' _io.BufferedReader'"
当我使用load()而不是loads()
时我收到此错误
" UnicodeDecodeError:' ascii'编解码器不能解码位置0中的字节0xc6:序数不在范围内(128)"
如果我使用了pickle.load(filename,encoding =' latin1')
我收到此错误 " ModuleNotFoundError:没有名为' bson'"
的模块任何帮助都会非常感激
此致
答案 0 :(得分:0)
我编写了以下代码,向您展示如何使用pickle,根据您的需要进行编辑。
import pickle
dict = {0:0, 1:1}
list_of_dict = [dict, dict]
with open("save.pickle", "wb") as f:
pickle.dump(list_of_dict, f)
del list_of_dict
#print(list_of_dict)
#put below in the other script.
with open("save.pickle", "rb") as f:
list_of_dict = pickle.load(f)
print(list_of_dict)
这是用python 3编写的,如果你使用的是python 2,请更改以下行:
import pickle
到
import cPickle as pickle
并适当更改打印件。
del
命令用于删除变量,以节省我在2个脚本中编写它的时间。您可以忽略该行,然后在第二个脚本中写下余数。
来源: 我过去和以下几个使用的python脚本: https://wiki.python.org/moin/UsingPickle
编辑:我改进了代码。尝试并类似地使用它。