Aam*_*nan 9 python mysql django pickle
我在Django中腌制Python对象并将其保存在MySQL数据库中.到目前为止,我遵循了这些简单的规则:
cPickle.dumps(object) #将python对象转换为pickle对象
cPickle.loads(pickled_object) #从pickle对象加载python对象
我的Django Model Field是Text Field
MySQL数据库字段类型是longblob属性binary
MySQL db编码是 utf8_unicode_ci
不幸的是我在加载python对象时遇到以下错误.
Type Error: ('an integer is required', <type 'datetime.date'>, ('x07xb6x0bx06',))
Run Code Online (Sandbox Code Playgroud)
在我看来,通过查看错误值,x07xb6x0bx06这是一个编码问题.我错过了一些重要的步骤吗?任何人都可以帮我解决这个问题吗?
如果您尝试将输出存储cPickle.dumps在VARCHAR列中,那么您的问题是您正在尝试将字节字符串存储在字符列中.在这种情况下,修复是将对象编码为unicode(base64.encode(cPickle.dumps(myobject)))然后存储它.
或者:
object2varchar = lambda obj: unicode(base64.encode(cPickle.dumps(obj)))
store(object2varchar([1, 'foo']))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6304 次 |
| 最近记录: |