【发布时间】:2011-12-28 00:08:26
【问题描述】:
我正在开发Django 中的应用程序。我正在尝试将一些数据结构e.g. dictionary 存储在MySQL db 中。所以我使用 Python Pickle 模块。当我使用pickle.dumps(some_structure) 将其存储在数据库中时,它工作正常。我的数据库字段是longblob 模式是binary。
但是当我在 django 中访问模型对象的字段时:
obj = someModel.get(pk=1)
some_structure = obj.field
content = pickle.loads(some_structure)
它会引发以下错误:
UnpicklingError: invalid load key, '{'.
请帮助我,我已经尝试过 google,但它并没有帮助我,还有一个类似的 Question 但它与我的问题无关,因为我存储在 db 中。
【问题讨论】:
-
我建议腌制您的数据以将其存储在数据库中并不是解决此问题的正确方法。您应该将数据正确存储在数据库中,将数据转换为表格和字段。
-
数据在
complex hierarchy (nested dictionaries)。我不能以表格和字段的形式保存它。数据是一些过程的结果,我稍后需要在 django 中处理另一个View。 -
那么 JSON 可能是比 pickle 更好的格式。 JSON 是跨平台的,而 pickle 是特定于实现的。
-
无论如何都无法过滤腌制数据。
-
你使用什么模型字段类型?