classification
Title: Bytes pickled with 3.1 not unpickled with 2.7 correctly
Type: behavior Stage: resolved
Components: Library (Lib), Unicode Versions: Python 3.1, Python 2.7
process
Status: closed Resolution: duplicate
Dependencies: Superseder: byte/unicode pickle incompatibilities between python2 and python3
View: 6784
Assigned To: Nosy List: jdharper, r.david.murray
Priority: normal Keywords:

Created on 2011-02-02 15:31 by jdharper, last changed 2011-02-02 15:47 by r.david.murray. This issue is now closed.

Messages (2)
msg127735 - (view) Author: Jeffrey Harper (jdharper) Date: 2011-02-02 15:31
When a bytes object is pickled with 3.1 and then unpickled with 2.7, the results are incorrect.  The example below shows that pickling 
b'abcdefg' in 3.1 and then unpickling in 2.7 produces the string
'[97L, 98L, 99L, 100L, 101L, 102L, 103L]'

The unpickling operation should return 'abcdefg'.

C:\decompyle\jtest>c:\Python31\python
Python 3.1.3 (r313:86834, Nov 27 2010, 18:30:53) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> file = open('test.pkl', 'wb')
>>> import pickle
>>> pickle.dump(b'abcdefg', file, 0)
>>> exit()

C:\decompyle\jtest>c:\python27\python
Python 2.7 Stackless 3.1b3 060516 (release27-maint, Jul 22 2010, 18:58:18) [MSC
v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> file = open('test.pkl', 'rb')
>>> import pickle
>>> pickle.load(file)
'[97L, 98L, 99L, 100L, 101L, 102L, 103L]'
>>>
msg127738 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2011-02-02 15:47
Duplicate of issue 6784.  (If you disagree explain why here, please.)
History
Date User Action Args
2011-02-02 15:47:44r.david.murraysetstatus: open -> closed

superseder: byte/unicode pickle incompatibilities between python2 and python3
type: behavior

nosy: + r.david.murray
messages: + msg127738
resolution: duplicate
stage: resolved
2011-02-02 15:31:28jdharpercreate