簡體   English   中英

解開“ _io.BufferedReader”錯誤

[英]unpickling '_io.BufferedReader' error

大家好,我使用以下代碼將詞典列表腌制到文件中

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()而不是load()時

我得到這個錯誤

“ UnicodeDecodeError:'ascii'編解碼器無法解碼位置0的字節0xc6:序數不在范圍(128)中”

如果我使用pickle.load(filename,encoding ='latin1')

我收到此錯誤“ ModuleNotFoundError:沒有名為'bson'的模塊”

任何幫助將非常感激

真誠的

我編寫了以下代碼,向您展示如何使用泡菜,並根據需要對其進行編輯。

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

編輯:我改進了代碼。 嘗試類似地使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM