py2中存储的pickle和py3中pickle无法读取的兼容性问题解决方案
来源:互联网 发布:编程菱形 编辑:程序博客网 时间:2024/06/09 10:37
问题描述
在py2.7当中,用以下语句将变量存储到pickle当中
with open('../dataset/m_7800/rf_preds.pickle', 'wb') as f: pickle.dump(rf_preds, f)
这个时候,用py3.6中的pickle取获取存储好的变量
with open('../dataset/m_7800/rf_preds.pickle', 'rb') as f: rf_preds = pickle.load(f)
会报错
---------------------------------------------------------------------------UnicodeDecodeError Traceback (most recent call last)<ipython-input-21-8326d2e71e16> in <module>() 1 with open('../dataset/m_7800/rf_preds.pickle', 'rb') as f:----> 2 rf_preds = pickle.load(f)UnicodeDecodeError: 'ascii' codec can't decode byte 0xb1 in position 8: ordinal not in range(128)
解决方案
在py3.6的load的过程当中加入encoding=’latin1’即可。
with open('../dataset/m_7800/rf_preds.pickle', 'rb') as f: rf_preds = pickle.load(f, encoding='latin1')
如果仍旧不行,可以在py2.7存储的时候加入protocol=2,再用上面的方式进行load操作,如下
with open('../dataset/m_7800/rf_preds.pickle', 'wb') as f: pickle.dump(rf_preds, f, protocol=2)
阅读全文
0 0
- py2中存储的pickle和py3中pickle无法读取的兼容性问题解决方案
- python中pickle的用法
- py2和py3的区别
- py2和py3的区别
- pickle 在python 2和python 3中兼容性问题
- pickle 在python 2和python 3中兼容性问题
- Python中pickle模块的使用
- py3.x和py2.x的区别
- 解决python3读取Python2存储的pickle文件
- Python 关于爬虫过程中 使用pickle 保持cookies到本地 以及读取的简单方法
- 用pickle存储Python的原生对象
- python学习笔记28(python中pickle的使用)
- pickle——保存python中数据结构的模块
- Python中通过csv的writerow输出多余空行+py2.x &py3.兼容
- input函数在py2和py3的区别
- Python的pickle模块
- pickle的用法
- pyspark的pickle.PicklingError
- 多线程III----创建线程的第二种方式
- Git覆盖本地修改文件
- 构造队列问题(循环队列变形java)
- 友元函数friend
- hammingDistance
- py2中存储的pickle和py3中pickle无法读取的兼容性问题解决方案
- 一个op电路的分析
- web。xml初始化spring
- html里面制作表单。去掉一些不是常见的。这些都是基础中的简化版。可以更快的学习
- 2017ACMICPC亚洲区青岛站 B:Chenchen,Tangtang,ZengZeng【五分钟解决的战斗】
- 扫描包
- ubuntu14.04系统安装以及caffe无GPU安装
- 解题报告 NOIP2015 信息传递
- oracle可视化工具的使用