Python 取消勾选错误无效的加载键&x27;{';

Python 取消勾选错误无效的加载键&x27;{';,python,mysql,pickle,Python,Mysql,Pickle,我正在开发一个位于Django中的应用程序。我试图在MySQLdb中存储一些数据结构,例如字典。因此我使用PythonPickle模块。当我使用Pickle.dumps(一些\u结构)将其存储在db中时,效果很好。我的数据库字段是longblob模式是binary 但是当我在django中访问模型对象字段时: obj = someModel.get(pk=1) some_structure = obj.field content = pickle.loads(some_structure)

我正在开发一个位于
Django
中的应用程序。我试图在
MySQL
db中存储一些数据结构
,例如字典
。因此我使用Python
Pickle
模块。当我使用
Pickle.dumps(一些\u结构)将其存储在db中时,效果很好
。我的数据库字段是
longblob
模式是
binary

但是当我在django中访问模型对象字段时:

obj = someModel.get(pk=1)
some_structure = obj.field
content  = pickle.loads(some_structure)
它会引发以下错误:

UnpicklingError: invalid load key, '{'.

请帮帮我,我尝试过谷歌,但它对我没有帮助,还有一个类似的,但与我的问题无关,因为我存储在数据库中。

我遇到了这个错误,我发现这是因为我试图解开一些原本没有腌制过的东西

更具体地说,我存储了一个Python dict而没有对其进行酸洗,从而生成了初始字符
{

因此,要解决此问题,您应该尝试以下任一方法:

  • 从数据存储检索时不取消勾选字符串,或
  • 在插入数据存储之前验证对象是否已被pickle

一个损坏的文件可能会导致此问题。用新的pickle对象替换旧的pickle对象。它对我很有效。

我建议将数据酸洗以存储在数据库中不是正确的方法。您应该将数据正确存储在数据库中,将数据转换为表和字段。数据位于
复杂的hie中rarchy(嵌套字典)
。我不能以表格和字段的形式保存它。数据是某个过程的结果,我以后需要在另一个
视图上的django中处理这些数据。
。那么JSON可能是比pickle更好的格式。JSON是跨平台的,而pickle是特定于实现的。无论如何,pickle数据是无法过滤的。您需要什么模型字段类型您使用?另一种可能发生这种情况的方法:在没有进行正确的LFS克隆的情况下尝试取消勾选Git LFS文件。