序列化pickle模块
1.pickle模块
pickle.dumps() 和pickle.loads()
import pickle
f = open('112.pkl','w')
a = {'name':2,2:3,3:4,4:5}
print(pickle.dumps(a),type(pickle.dumps(a)))
import pickle
a = {'name':2,2:3,3:4,4:5}
b = pickle.dumps(a)
print(pickle.loads(b))
pickle.dump() 和pickle.load() 这里和json的区别在于pickle直接转换成字节(bytes),json直接转换成字符串。pickle应用wb,rb这些打开二进制文件。
import pickle
f = open('112.pkl','wb')
a = {'name':2,2:3,3:4,4:5}
b = pickle.dump(a,f)
print(b,type(b))
import pickle
f = open('112.pkl','rb')
b = pickle.load(f)
print(b)
2.那么json和pickle这么相似,到底为什么还要存在两个类型差不多的模块?
①·因为json模块只能用于str,dict,tuple,list,int.只能将这些数据类型转换成字符串。
而pickle可以将所有的数据类型转换为字符串,包括函数(下面有举例)
②·但是json模块可以用于跨语言传递字符串,而pickle只能在python里使用,语言局限性大。
用json转换函数,报错函数不可序列化。
import pickle,json def sayhi():
print("hello world") f = open('113.json','w') a = json.dump(sayhi,f) # TypeError: Object of type 'function' is not JSON serializable
用pickle转换函数,不会报错
import pickle,json def sayhi():
print("hello world") f = open('113.json','wb') a = pickle.dump(sayhi,f)
序列化pickle模块的更多相关文章
- Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式
Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Py ...
- Python--模块之sys模块、logging模块、序列化json模块、序列化pickle模块
sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit() sys.path 返回模块的搜索路径,初始化时使用PYTHONPA ...
- 序列化 pickle模块
1. pickle 简介 2. pickle 核心函数 3. pickle 高级 -- 复杂对象 1. 持久化与 pickle 简介 1.1 什么是持久化? 持久化的基本思想很简单.假定有一个 Pyt ...
- os模块、sys模块、json模块、pickle模块、logging模块
目录 os模块 sys模块 json模块 pickle模块 logging模块 os模块 功能:与操作系统交互,可以操作文件 一.对文件操作 判断是否为文件 os.path.isfile(r'路径') ...
- 各类模块的粗略总结(time,re,os,sys,序列化,pickle,shelve.#!json )
***collections 扩展数据类型*** ***re 正则相关操作 正则 匹配字符串*** ***time 时间相关 三种格式:时间戳,格式化时间(字符串),时间元组(结构化时间).***`` ...
- Pythoy 数据类型序列化——json&pickle 模块
Pythoy 数据类型序列化--json&pickle 模块 TOC 什么是序列化/反序列化 pickle 模块 json 模块 对比json和pickle json.tool 命令行接口 什 ...
- [python](windows)分布式进程问题:pickle模块不能序列化lambda函数
运行错误:_pickle.PicklingError: Can't pickle <function <lambda> at 0x000002BAAEF12F28>: attr ...
- 序列化模块— json模块,pickle模块,shelve模块
json模块 pickle模块 shelve模块 序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. # 序列化模块 # 数据类型转化成字符串的过程就是序列化 # 为了方便存储和网 ...
- python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )
1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...
随机推荐
- 对于iOS 7 隐藏特性和解决之道
当 iOS7 刚发布的时候,全世界的苹果开发人员都立马尝试着去编译他们的app,接着再花上数月的时间来修复任何出现的故障,甚至重做app.这样的结果,使得人们根本无暇去探究 iOS7 所带来的新东西. ...
- MYSQL进阶学习笔记十一:MySQL 表的分析,检查和优化!(视频序号:进阶_28)
知识点十二:MySQL 表的分析,检查和优化(28) 表的分析,检查和优化: 定期分析表: ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, ...
- 出现ImportError: No module named win32api异常
ImportError: No module named win32api出现异常 实际是需要安装和自己python兼容的win32all 在http://starship.python.net/cr ...
- UVaLive 7456 Least Crucial Node (并查集+暴力 或者 求割点)
题意:求标号最小的最大割点.(删除该点后,指定点#sink能到达的点数减少最多). 析:由于不知道要去掉哪个结点,又因为只有100个结点,所以我们考虑用一个暴力,把所有的结点都去一次,然后用并查集去判 ...
- Codeforces 702B【二分】
题意: 给一个a数组,输出有多少对相加是等于2^x的.1<=a[i]<=1e9,n<=1e5 思路: a[i]+a[j]=2^x 对于每个a[i],枚举x,然后二分查找a[j]; p ...
- pojcoin【未完待续】
题意: 给你一些数字的种类,然后拥有这个种类的各个数量,输出可以组成多少数字,数字范围在1-m: 思路: 卧槽好难-
- bzoj 4259 4259: 残缺的字符串【FFT】
和bzoj 4503 https://www.cnblogs.com/lokiii/p/10032311.html 差不多,就是再乘上一个原串字符 有点卡常,先在点值下算最后一起IDFT #inclu ...
- 洛谷P3209 [HNOI2010]平面图判定(2-SAT)
传送门 看到哈密顿回路就被吓傻了……结果没有好好考虑性质…… 首先,平面图有个性质:边数小于等于$3n-6$(我也不知道为啥),边数大于这个的直接pass 然后考虑原图,先把哈密顿回路单独摘出来,就是 ...
- noip 2012 Day2 T2 借教室
一.暴力简述 甩链接.jpeg 首先我们不难看出,这道题————并不是一道多难的题,因为显然,第一眼看题目时便很容易地想到暴力如何打:枚举每一种订单,然后针对每一种订单,对区间内的每一天进行修改(做减 ...
- robotframework自动化系列:文本类型的下拉框
对于下拉框定位和输入,这里主要遇到有两种类型的下拉选择. 其中一个类型是select-options格式,如图 这种方式的定位可以使用select from list by value或select ...