序列化模块 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 ...
随机推荐
- 【管理】个人主义—>集体主义
导读:这个月作为学术部负责人,暴露了很多问题,个人的,集体的!我需要思考的,有很多.现在,我反思图书馆丢书这件事的处理方案:我虽然站在了管理层,却做着员工干的事儿.以一种个人主义.英雄主义去做事儿.却 ...
- AWR报告中Parse CPU to Parse Elapsd%的理解
AWR报告中Parse CPU to Parse Elapsd%的理解 原文自:http://dbua.iteye.com/blog/827243 Parse CPU to Parse Ela ...
- BZOJ 2127 happiness ——网络流
[题目分析] 基本上是第一次真正的使用最小割的模型. 同时加上一个数然后最后再减去是处理负数的一种方法. 设立出来最小割的模型然后解方程是一件很重要的事情,建议取一个相对来说比较简单的值带入求解. 这 ...
- 2013 年 acm 长春现场赛
A - Hard Code Hdu 4813 题目大意:给你一坨字符串,让你输出其栅栏密码的解码形式 思路:水题模拟 #include<iostream> #include<cstd ...
- yum update 出错解决办法
卸载掉yum和python 于是我卸载了python和yum,觉得自己重新安装python和yum. 步骤1:卸载python rpm -qa|grep python|xargs rpm -e --a ...
- VMware虚拟机CentOS7 - VMnet8网络配置及常见问题解决
本文环境 物理机OS: Windows10 专业版 虚拟机平台: VMware Workstation 14 虚拟机OS: CentOS 7 配置步骤 一. 查看物理主机的网络配置信息 主要是找到可以 ...
- gdbt原理解析
链接: http://note.youdao.com/noteshare?id=aeb1c7a30c5f4b70e3fff51f28ee5c47 懒得复制到这里了,一开始是在有道云笔记上写的,这里的公 ...
- Arduino学习笔记1---开发环境搭建
主要内容:(一). Arduino IDE的下载及安装 (二). Arduino IDE的应用 (三). Arduino的程序结构 (四). Arduino程序的编译及下载 (一). Arduino ...
- Virtualization基础
官方文档学习 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/pdf/Virtualization_G ...
- JVM GC 相关
http://blog.csdn.net/cutesource/article/details/5904501 http://www.cnblogs.com/dingyingsi/p/3760447. ...