[Tutor] pickle problem
Knacktus
knacktus at googlemail.com
Tue Oct 12 22:04:55 CEST 2010
Am 12.10.2010 19:35, schrieb Roelof Wobben:
>
>
> Hello,
>
> I have this code :
>
> import urllib
> import pickle
>
> image = urllib.URLopener()
> image.retrieve("http://www.pythonchallenge.com/pc/def/peak.html","banner.p" )
> plaatje = open("banner.p", "rb")
> plaatje2 = pickle.load(plaatje)
>
> But it gives this output :
>
> Traceback (most recent call last):
> File "C:\Users\wobben\workspace\oefeningen\src\test2.py", line 7, in<module>
> plaatje2 = pickle.load(plaatje)
> File "C:\Python27\lib\pickle.py", line 1378, in load
> return Unpickler(file).load()
> File "C:\Python27\lib\pickle.py", line 858, in load
> dispatch[key](self)
> KeyError: '<'
>
The last error indicates that a python module (pickle.py) tried to
access a dictionary (dispatch) with the key "<". The expected value
seems to be a callable as indicated by the (self). But there's no key
"<" in it. So, probably, this module was called with improper data.
If you follow up your stack trace to where the error in your code
occurs, you'll see that something is wrong with "unpickling" the data in
your plaatje file.
Obviously, the data could be passed to the pickle module. So no read
error on the file. What's left? There's probably an issue with the data
in the file.
Now, you have to know that pickling reads and writes Python objects in a
certain format. That means you can only load data with pickling, which
was created by pickling.
Question: Is your data in "banner.p" properly formatted pickling data?
Note: There're different formats for pickling. Check the docs or a very
nice source for examples of the Python Standard lib: PyMOTW (Google
first hit); there's an article about pickling among others. But first
should be the standard documentation.
>
> What does this mean ?
>
> Roelof
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
More information about the Tutor
mailing list