Strange KeyError using cPickle

Tim Peters tim.peters at gmail.com
Wed Jun 1 21:03:37 EDT 2005


[Rune Strand]
> I'm experiencing strange errors both with pickle and cPickle in the
> below code:
>
>
> import cPickle as pickle
> #import pickle
> from string import ascii_uppercase
> from string import ascii_lowercase
> 
> def createData():
>    d1 = list("Something's rotten")
>    d2 = tuple('in the state of Denmark')
> 
>    d3 = [('a', 'b'), ('c', 'd')]
>    #d3 = [('s a', 's b'), ('s c', 's d')]
>    #d3 = [('sa', 'sb'), ('sc', 'sd')]
>    #d3 = [['s a', 's b'], ['s c', 's d']]
> 
>    d4 = dict(zip(ascii_uppercase,ascii_lowercase))
>    return [d1, d2, d3, d4]
> 
> def doPickle(data, pickleFile = 'pickleTest.p', proto = 2):
>    f = XWwz(pickleFile, 'w')

What is "XWwz"?  Assuming it's a bizarre typo for "open", change the
'w' there to 'wb'.  Pickles are binary data, and files holding pickles
must be opened in binary mode, especially since:

> ...
> (on WinXP, CPython 2.4.1)



More information about the Python-list mailing list