Python Pickle加载错误
我已经用pickle.dumps整理了一系列字典。我将字符串保存在MySQL数据库的文本字段中,由Django管理。当我提取字符串并尝试将该字符串取消粘贴到字典列表时,出现以下错误:Python Pickle加载错误,python,django,serialization,pickle,Python,Django,Serialization,Pickle,我已经用pickle.dumps整理了一系列字典。我将字符串保存在MySQL数据库的文本字段中,由Django管理。当我提取字符串并尝试将该字符串取消粘贴到字典列表时,出现以下错误: >>> pickle.loads(intlist1) Traceback (most recent call last): File "<console>", line 1, in <module> File "/usr/lib/python2.7/pickle.p
>>> 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
>>>
我不知道为什么会这样 这是一个愚蠢的错误。对不起 我从数据库中获取intlist1作为
.values('interests'),并忘记使用[0]['interests'][0]来获取之后的值。愚蠢的错误。很抱歉谢谢错误消息明确指出
intlist1
属于ValuesQuerySet
类型。那不是一根绳子。将其转换为字符串。但我从数据库中的一列中获取intlist1,其中元素存储为“文本”,我使用pickle.dumps保存了元素。不过,您正在将类型为ValuesQuerySet
的对象传递到load
,这就是为什么会出现错误。您的问题实际上是关于如何正确使用数据库。但是您没有说明您正在使用哪个数据库,也没有显示任何存储或检索代码的数据库。除非你这么做,否则没有人能帮你。顺便问一下,你在用Django吗?如果是,请说。是的,我是。抱歉,如果这引起了混乱
pickle.loads(intlist1) #did not work
pickle.loads(intlist1[0].values()[0]) #works