0
我使用pickle.dumps醃製了一個字典列表。我將字符串保存在MySQL數據庫的文本字段中 - 由Django管理。當我提取字符串,並嘗試unpickle的字符串字典的名單,我得到以下錯誤:Python Pickle載入錯誤
>>> pickle.loads(intlist1)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/lib/python2.7/pickle.py", line 1381, in loads
file = StringIO(str)
TypeError: expected read buffer, ValuesQuerySet found
>>>
編輯: 周圍想通了的工作。雖然無法理解解決方案。
pickle.loads(intlist1) #did not work
pickle.loads(intlist1[0].values()[0]) #works
我不知道爲什麼是這種情況!
錯誤消息清楚地表明'intlist1'屬於'ValuesQuerySet'類型。這不是一個字符串。將其轉換爲字符串。 –
但是我從數據庫中的表中的列中獲取intlist1,其中元素存儲爲「文本」,並使用pickle.dumps保存了元素。 –
儘管如此,你*將* ValuesQuerySet類型的對象傳遞給'loads',這就是爲什麼你會收到錯誤。你的問題是真的*關於如何正確使用你的數據庫。但是你沒有說過你正在使用哪個數據庫,或者顯示了任何數據庫存儲或檢索代碼。直到你做任何事都無法幫助你。 –