I am pickling Python Objects in Django and saving it in MySQL db. So far i have followed these simple rules:
cPickle.dumps(object)
#to convert python object to pickled object
cPickle.loads(pickled_object)
# to load back the python object from pickled object
My Django Model Field
is Text Field
MySQL db field Type is longblob
Attributes binary
MySQL db encoding is utf8_unicode_ci
Unfortunately i am getting following error while loading back python object.
Type Error: ('an integer is required', <type 'datetime.date'>, ('x07xb6x0bx06',))
It seems to me by looking on error value x07xb6x0bx06
this is an encoding problem.
Did i miss some important step?? Can any one help me to solve this problem??
If you are trying to store the output of cPickle.dumps
in a VARCHAR
column, then your issue is that you are trying to store a byte-string in a character column. The fix in that case is to encode your object as unicode(base64.encode(cPickle.dumps(myobject)))
and then store it.
Alternatively:
object2varchar = lambda obj: unicode(base64.encode(cPickle.dumps(obj)))
store(object2varchar([1, 'foo']))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With