[issue3903] pickle error in python3.0rc1

Georg Grafendorfer report at bugs.python.org
Thu Sep 18 22:58:35 CEST 2008

New submission from Georg Grafendorfer <guruvienna at hotmail.com>:

Hi all,
I compiled Python3.0rc1 with the usual ./configure make make test make
install on my Athlon XP 1800 (32 bit), using Debian Etch as OS, the
following works on Python2.4 (default in Debian Etch), but not with

>>> import pickle
>>> d = {'ID':345, 'AD':'Hallo'}
>>> f = open('test.hhh', 'wb')
>>> pickle.dump(d,f,2)
>>> f.close()
>>> f = open('test.hhh', 'r')
>>> pickle.load(f)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.0/pickle.py", line 1325, in load
    return Unpickler(file, encoding=encoding, errors=errors).load()
  File "/usr/local/lib/python3.0/io.py", line 1728, in read
    eof = not self._read_chunk()
  File "/usr/local/lib/python3.0/io.py", line 1557, in _read_chunk
    self._set_decoded_chars(self._decoder.decode(input_chunk, eof))
  File "/usr/local/lib/python3.0/io.py", line 1294, in decode
    output = self.decoder.decode(input, final=final)
  File "/usr/local/lib/python3.0/codecs.py", line 300, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 0:
unexpected code byte

the same if you specifiy protocol number 3, it works also in
Python3.0rc1 if you specifiy 'rb' instead of 'r' as file opening method,
but according to the Python library reference it should work also with
'r'.  How should one know with which protocol the object was pickled?

Thanks very much, 


components: Extension Modules
messages: 73399
nosy: Georg
severity: normal
status: open
title: pickle error in python3.0rc1
type: behavior
versions: Python 3.0

Python tracker <report at bugs.python.org>

More information about the Python-bugs-list mailing list