序列化模块 json pickel shelve
一、json 模块
1、定义
将字典、列表等内容转换成字符串的过程就是序列化。
操作的数据类型有限,但是可以支持所有编程语言操作。
2、为什么要有序列化?
1、以某种存储形式使自定义对象持久化。
2、将对象进行传递
3、是程序更具维护性
3、四大功能 (dumps,loads,dump,load)
dumps loads
import josn
lst = ['aa'', 11, 'b3']
ret = json.dumps(lst) # 序列化
print(ret)
ret1 = json.loads(ret) # 反序列化
print(ret1)
dump load
import json
with open ('t1.txt',mode='w',encoding= 'utf-8') as f:
json.dump(lst, f) # 序列化
# dump 用于直接将序列化的字符串写入文件中 with open ('t1.txt',mode='r',encoding= 'utf-8') as f:
print(json.load(f)) # 反序列化
# load 可以将文件中的字符串返回来
json 模块的限制
1、json 操作字典的时候,key 必须是字符串形式。
2、json 格式的字典,的key 不能是数字,如果是数字,会被强行转成str。且进行反序列化后,还是字符串。
3、json格式中的字符串必须是双引号的形式,如果将json 格式的字符串的双引号换成单引号,就会报错。
4、json 对元祖进行序列化是会被强行转换成列表,反序列化后还是列表,而不会返回元祖。
5、json 支持元祖做字典的value值,不支持做key 。
6、json.dump支持多次dump写入文件,但不支持load。(因为写入后会出现,多种类型出现在一行)。
要想dump多个数据进入文件,需要用dumps
7、对于中文,如果不处理,序列化后会变成ascii码类型。
因此,ensure_ascii = False 时,就可以是中文类型了。
8、set 不能被dumps/dump
二、pickel 是python特有的模块,不能跨语言,但是支持的数据类型多样。
1、dumps, loads (pickel.dumps 的结果是bytesle类型)
2、dump load
如果对文件进行操作,dump时,需要时 wb 模式写入,而进行 load时,需要 rb 模式读出。
3、可以进行多次dump/load 操作。
三、shelve
1、当你写定一个文件后,对文件的改动较小,读取文件的次数较多的时候,可以使用shelve。
序列化模块 json pickel shelve的更多相关文章
- python 全栈开发,Day25(复习,序列化模块json,pickle,shelve,hashlib模块)
一.复习 反射 必须会 必须能看懂 必须知道在哪儿用 hasattr getattr setattr delattr内置方法 必须能看懂 能用尽量用__len__ len(obj)的结果依赖于obj. ...
- python开发模块基础:序列化模块json,pickle,shelve
一,为什么要序列化 # 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化'''比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文 ...
- python序列化模块 json&&pickle&&shelve
#序列化模块 #what #什么叫序列化--将原本的字典.列表等内容转换成一个字符串的过程叫做序列化. #why #序列化的目的 ##1.以某种存储形式使自定义对象持久化 ##2.将对象从一个地方传递 ...
- python全栈开发day17-常用模块collections,random,time,os,sys,序列化(json pickle shelve)
1.昨日内容回顾 1.正则表达式 # 正则表达式 —— str # 检测字符串是否符合要求 # 从大段的文字中找到符合要求的内容 1).元字符 #. # 匹配除换行 ...
- python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则
python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess ...
- python序列化: json & pickle & shelve 模块
一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...
- Python全栈之路----常用模块----序列化(json&pickle&shelve)模块详解
把内存数据转成字符,叫序列化:把字符转成内存数据类型,叫反序列化. Json模块 Json模块提供了四个功能:序列化:dumps.dump:反序列化:loads.load. import json d ...
- 序列化模块— json模块,pickle模块,shelve模块
json模块 pickle模块 shelve模块 序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. # 序列化模块 # 数据类型转化成字符串的过程就是序列化 # 为了方便存储和网 ...
- 20,序列化模块 json,pickle,shelve
序列化模块 什么叫序列化? 将原本的字典,列表等内容转换成一个字符串的过程叫做序列化. 序列化的目的? 数据结构 通过序列化 转成 str. str 通过反序列化 转化成数据结构. json: jso ...
随机推荐
- 【U+B+D】三层框架 原理+实例
导读:三层的学习,也终于得到收获了.这个过程很艰辛,不止一次的想放弃.在这一个学习过程中,真的很感谢师傅的尽心.耐心.费心.其实真的很脆弱,现在回想起来都很不可思议. 一.基本概况 1,什么是三层 我 ...
- [TyvjP1519] 博彩游戏(AC自动机 + DP)
传送门 和bzoj1030一个德性 #include <queue> #include <cstdio> #include <cstring> #define N ...
- BZOJ3572 [Hnoi2014]世界树 【虚树 + 树形dp】
题目 世界树是一棵无比巨大的树,它伸出的枝干构成了整个世界.在这里,生存着各种各样的种族和生灵,他们共同信奉着绝对公正公平的女神艾莉森,在他们的信条里,公平是使世界树能够生生不息.持续运转的根本基石. ...
- 刷题总结——书架(bzoj1861)
题解: Description 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看书的时候,每次取出一本书,看完后放回书柜然 ...
- ecplise 使用快捷键
1. [ALT+/] 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类.方法和属性的名字时,多体验一下[ALT+/]快捷键带来的好处吧. 2. ...
- robotframework使用
下面是ui自动化的使用,关于接口自动化的使用参照此博客:http://blog.csdn.net/wuxiaobingandbob/article/details/50747125 1.使用pytho ...
- mock数据。根据表中一天的数据模拟其他日期的数据
package test; import java.sql.*; import java.text.SimpleDateFormat; import java.util.*; import java. ...
- 【BZOJ3143】【HNOI2013】游走 && 【BZOJ3270】博物馆 【高斯消元+概率期望】
刚学完 高斯消元,我们来做几道题吧! T1:[BZOJ3143][HNOI2013]游走 Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小 ...
- rsync同步文件
rsync中的参数 -r 是递归 -l 是链接文件,意思是拷贝链接文件:-p 表示保持文件原有权限:-t 保持文件原有时间:-g 保持文件原有用户组:-o 保持文件原有属主:-D 相当于块设备文件: ...
- PAT (Advanced Level) 1087. All Roads Lead to Rome (30)
暴力DFS. #include<cstdio> #include<cstring> #include<cmath> #include<vector> # ...