这篇文章主要介绍了 Python 使用 pickle 模块存储数据报错解决示例代码, 小编觉得还是挺不错的, 具有一定借鉴价值, 需要的朋友可以参考下
本文研究的主要是 Python 使用 pickle 模块存储数据报错解决方法, 以代码的形式展示, 具体如下
首先来了解下 pickle 模块
pickle 提供了一个简单的持久化功能可以将对象以文件的形式存放在磁盘上
pickle 模块只能在 python 中使用, python 中几乎所有的数据类型 (列表, 字典, 集合, 类等) 都可以用 pickle 来序列化,
pickle 序列化后的数据, 可读性差, 人一般无法识别
接下来我们看下 Python 使用 pickle 模块存储数据报错解决方法
代码:
- # 写入错误
- TypeError: write() argument must be str, not bytes
- # 读取错误
- UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 0: illegal multibyte sequence
解决方案:
- def storeTree(inputTree, fielname):
- import pickle
- # 写文件时, 注明'wb'
- fw = open(fielname, 'wb')
- pickle.dump(inputTree, fw)
- fw.close()
- def grabTree(filename):
- import pickle
- # 读文件时, 注明'rb'
- fr = open(filename, 'rb')
- fr = open(filename)
- return pickle.load(fr)
- storeTree(myTree, 'classifierStorage.txt')
- print(grabTree('classifierStorage.txt'))
输出:
- {'no surfacing': {0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}}
- Process finished with exit code 0
来源: http://www.phperz.com/article/18/0224/363239.html