pickle在python2和python3之间的兼容性

  • 2019 年 11 月 21 日
  • 笔记

问题

在python2中创建的pickle文件,在python3中无法读取,错误为

1

nicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 614: ordinal not in range(128)

解决

困扰我两个月之久,之前是通过在python2中转存到numpy来绕过,今天突然发现了一篇博文专门讲这个问题,遂着手测试。

1

Xd = pickle.load(open("your_file_name",'rb'), encoding='latin1')

就是说,加上encoding='latin1'就ok了