[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) -- http://mail.python.org/mailman/listinfo/python-list