【发布时间】:2011-12-30 07:23:26
【问题描述】:
我在 Django 中腌制 Python 对象并将其保存在 MySQL 数据库中。 到目前为止,我遵循了这些简单的规则:
cPickle.dumps(object)#将python对象转换为腌制对象cPickle.loads(pickled_object)#从腌制对象中加载回python对象我的 Django
Model Field是Text FieldMySQL db 字段类型为
longblob属性binaryMySQL db 编码为
utf8_unicode_ci
不幸的是,我在加载回 python 对象时遇到以下错误。
Type Error: ('an integer is required', <type 'datetime.date'>, ('x07xb6x0bx06',))
在我看来,通过查看错误值x07xb6x0bx06 这是一个编码问题。
我错过了一些重要的步骤吗?谁能帮我解决这个问题??
【问题讨论】:
-
你有使用泡菜的具体原因吗?这是一种二进制格式,只能由 python 使用。如果可以选择,JSON 不是更好的选择吗?
-
JSON 不符合我的目的,我尝试使用
json.dumps,但收到此错误some_object is not JSON serializable。而且对象是纯 Pythonic。 -
您应该尝试使该对象也可序列化。当您尝试查找错误时,在您的数据库中包含人类可读的内容是一个大帮助。
标签: python mysql django pickle