I am getting this error, and I dont know what it means. How can I fix this problem?
my code looks like this, I\'ve used it before and it has worked:
This exact error occurred for me when I tried to unpickle (using pickle.loads) a string representation that I had stored in a database via django. Django changed the charactee representation of my string so that pickle.loads(mystring)
threw me that error. When I added an explicit string conversion in, it was fine: pickle.loads( str(mystring) )
EDIT: looking at the comments on the original post, I think this is related to the unicode string issue mentioned. I put a normal string into the database, and django gives me back a unicode string that produces this error.
maybe you should try another protocol try pickle.load(in1, 2)
!
I had a similar problem, resulting in KeyError: '\x1f'
.
In my case, if was pickled to a gzip file (ie: gzip.open(fileName,'wb')
), and I was trying to read it with a normal file object (ie: open(fileName,'rb')
).
try
pickle.loads()
Pickle is binary so you have to read it as such. Instead of ('r') try using ('rb') read binary. Also, if your writing the file ensure you are wrting the pickle file as binary as well ('wb'). That should work, hope it helps.