序列化json模块
1.用json模块来进行序列化和反序列化
注意:用json序列化的数据类型得到的文件后缀名必须是json。因为如果不是json后缀,别人也不知道这是用json序列化的文件。
序列化:json.dumps(需要转换成字符串的对象),将数据类型转换成字符串,不会存到文件里。
import json
dicts = {
'roles':[
{'role':'saber','name':'dapeng','life':50},
{'role':'shengqi','name':'archer','life':60}
]
}
f = open('111.json','w')
d = json.dumps(dicts)
print(d,type(d))
# {"roles": [{"role": "saber", "name": "dapeng", "life": 50}, {"role": "shengqi", "name": "archer", "life": 60}]} <class 'str'>
序列化:json.dump(obj,文件) 将数据类型转换城字符串的同时也存入到文件中。
import json
dicts = {
'roles':[
{'role':'saber','name':'dapeng','life':50},
{'role':'shengqi','name':'archer','life':60}
]
}
f = open('111.json','w')
d = json.dump(dicts,f)
print(d,type(d))
2反序列化 json.loads(字符串对象)
dicts = {
'roles':[
{'role':'saber','name':'dapeng','life':50},
{'role':'shengqi','name':'archer','life':60}
]
}
import json
d = json.dumps(dicts)
print(json.loads(d))
json.load(文件对象) 将文件中的字符串转换成字典等类型。
import json
f = open('111.json','r')
print(json.load(f))
3.json.dumps()和json.loads() 只是在内存中,不存储到硬盘里,存在的意义是什么?
①·把你的内存数据,通过网络,发送给其他人进行共享。网络共享只能通过字符串格式发送,所以要用json.dumps转换成字符串格式。
②·定义了不同语言之间的交互规则。
1.纯文本 缺点:不能共享复杂的数据类型,如嵌套。
2.xml 缺点:占空间大(如<year>2018</year>,而字典里可以用'year':2018,更省空间)
3.json 简单,可读性好,占用内存较小
4.json.dump() dump多次可以。
import json
f = open('112.json','w')
a = [1,2,3,4,5]
b = {1:2,2:3,3:4,4:5,5:6}
json.dump(a,f)
json.dump(b,f)
那么load多次可以吗?
dump多次的文件,不可以load一次或者多次。
import json
f = open('112.json','r')
json.load(f)
序列化json模块的更多相关文章
- 序列化 json 模块
什么是序列化? 将python中的列表,字典,元组,集合转换成字符串的过程就叫做序列化,反之叫做反序列化. 我们把变量从内存中变成可存储或传输的过程称之为序列化,序列化之后,就可以把序列化后的内容写入 ...
- python中序列化json模块和pickle模块
内置模块和第三方模块 json模块和pickle 模块(序列化模块) 什么是序列化? 序列化就是将内粗这种的数据类型转成另一种格式 序列化:字典类型——>序列化——>其他格式——>存 ...
- Python基础(12)_python模块之sys模块、logging模块、序列化json模块、pickle模块、shelve模块
5.sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 ...
- Python--模块之sys模块、logging模块、序列化json模块、序列化pickle模块
sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit() sys.path 返回模块的搜索路径,初始化时使用PYTHONPA ...
- python之序列化json模块与pickle模块(待补充)
一.json是所有语言都通用的一种序列化格式 只支持 : 列表,字典字符串,数字,且字典的key必须是字符串 ''' 1. dumps , loads 在内存中做数据转换: dumps : 数据类型 ...
- Python入门-模块4(序列化----json模块和pickle模块)
序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes.反之,把硬盘里面的数据读到内存里,叫反序列化.
- Python进阶(九)----json模块, pickle模块, os模块,sys模块,hashlib模块
Python进阶----json模块, pickle模块, os模块,sys模块,hashlib模块 一丶序列化模块 什么是序列化: 将一种数据结构,转换成一个特殊的序列(特殊字符串,用于网络传输 ...
- python学习之文件读写,序列化(json,pickle,shelve)
python基础 文件读写 凡是读写文件,所有格式类型都是字符串形式传输 只读模式(默认) r f=open('a.txt','r')#文件不存在会报错 print(f.read())#获取到文件所 ...
- Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式
Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Py ...
随机推荐
- (linux)块设备驱动程序
1.4.1 Linux块设备驱动程序原理(1) 顾名思义,块设备驱动程序就是支持以块的方式进行读写的设备.块设备和字符设备最大的区别在于读写数据的基本单元不同.块设备读写数据的基本单元为块,例如 ...
- YTU 1055: 输入字符串以及输出
1055: 输入字符串以及输出 时间限制: 1 Sec 内存限制: 128 MB 提交: 694 解决: 476 题目描述 编写一函数,由实参传来一个字符串,统计此字符串中字母.数字.空格和其它字 ...
- box-sizing: border-box;的作用
box-sizing 属性可以被用来调整这些表现: content-box 是默认值.如果你设置一个元素的宽为100px,那么这个元素的内容区会有100px宽,并且任何边框和内边距的宽度都会被增加到 ...
- poj 2253 Frogger 解题报告
题目链接:http://poj.org/problem?id=2253 题目意思:找出从Freddy's stone 到 Fiona's stone 最短路中的最长路. 很拗口是吧,举个例子.对 ...
- SPOJ:Divisors of factorial (hard) (唯一分解&分块优化)
Factorial numbers are getting big very soon, you'll have to compute the number of divisors of such h ...
- SPOJ:Eagle and Dogs(求树上每个点最远可以走到哪里---树的直径||DP)
Eagle (AKA Mohamed Ahmed) lives in a city consists of n intersections connected by n-1 roads, in a w ...
- Git如何删除自己创建的项目
版本管理器第二行最右边,找到倒三角,下面的Edit Project,拖动鼠标到最下面,Remove project ,弹出框Confirmation required里面输入项目名字,如项目名字为“w ...
- 关于GitHub的DNS基础设施,你了解吗?
在 GitHub,我们最近从头改进了 DNS.这包括了我们如何与外部 DNS 提供商交互以及我们如何在内部向我们的主机提供记录.为此,我们必须设计和构建一个新的 DNS 基础设施,它可以随着 GitH ...
- A. Mishka and Game
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 15. 用户管理
源码的github的地址 https://github.com/solenovex/ASP.NET-Core-MVC-Tutorial-Code 语雀上的人的地址: https://github.co ...