python write() argument must be str, not bytes
2024-08-23 10:15:31
python pickle
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import pickle
dic = {
"key" : "111",
"id" : "222",
"value" : 333,
"name" : "nihao",
"age" : 18,
}
file_object = open('./test.pkl', 'w')
pickle.dump(dic,file_object,0)
file_object = open('./test.pkl', 'r')
obj = pickle.load(file_object)
print(obj)
在python2环境中,可以成功写入文件,并且可以读取文件.
输出
{'key': '111', 'age': 18, 'id': '222', 'value': 333, 'name': 'nihao'}
同样的代码在python3环境中就不能够写入成功读取成功
在python3中的输出
Traceback (most recent call last):
File "pktest.py", line 26, in <module>
pickle.dump(dic,file_object,0)
TypeError: write() argument must be str, not bytes
如果想在python3中运行相同的代码
需要在代码读取文件处type加b
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import pickle
dic = {
"key" : "111",
"id" : "222",
"value" : 333,
"name" : "nihao",
"age" : 18,
}
file_object = open('./test.pkl', 'wb')
pickle.dump(dic,file_object,0)
file_object = open('./test.pkl', 'rb')
obj = pickle.load(file_object)
print(obj)
这份代码可以在python2和python3都输出
{'id': '222', 'value': 333, 'name': 'nihao', 'key': '111', 'age': 18}
最新文章
- C#中的匿名方法
- 教你一招:Win10系统如何正确卸载edge浏览器?
- Codeforces Round #337 (Div. 2) D. Vika and Segments 线段树 矩阵面积并
- (基础篇)PHP流程控制语句
- 【基于spark IM 的二次开发笔记】第二天 树形结构
- [iOS] Baritem 添加一项
- mysql和mysqli的区别
- activity的生命周期【转】
- ArrayList构造函数
- Intellij IDEA 4种配置热部署的方法
- 【Unity3D技术文档翻译】第1.5篇 本地使用 AssetBundles
- Python标准异常总结
- [LeetCode] Maximum Sum of 3 Non-Overlapping Subarrays 三个非重叠子数组的最大和
- vue 无限递归级联组件实现方案
- Android为TV端助力 am命令以及hotkey文件的编写
- java基础 ----- 选择结构
- 函数名、闭包、装饰器 day11
- BZOJ 2480 &;&; 3239 &;&; 2995 高次不定方程(高次同余方程)
- JS闭包中的循环绑定处理程序
- Mysql replace into