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模块的更多相关文章

  1. 序列化 json 模块

    什么是序列化? 将python中的列表,字典,元组,集合转换成字符串的过程就叫做序列化,反之叫做反序列化. 我们把变量从内存中变成可存储或传输的过程称之为序列化,序列化之后,就可以把序列化后的内容写入 ...

  2. python中序列化json模块和pickle模块

    内置模块和第三方模块 json模块和pickle 模块(序列化模块) 什么是序列化? 序列化就是将内粗这种的数据类型转成另一种格式 序列化:字典类型——>序列化——>其他格式——>存 ...

  3. Python基础(12)_python模块之sys模块、logging模块、序列化json模块、pickle模块、shelve模块

    5.sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 ...

  4. Python--模块之sys模块、logging模块、序列化json模块、序列化pickle模块

    sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit() sys.path 返回模块的搜索路径,初始化时使用PYTHONPA ...

  5. python之序列化json模块与pickle模块(待补充)

    一.json是所有语言都通用的一种序列化格式 只支持 : 列表,字典字符串,数字,且字典的key必须是字符串 ''' 1. dumps , loads 在内存中做数据转换: dumps : 数据类型 ...

  6. Python入门-模块4(序列化----json模块和pickle模块)

    序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes.反之,把硬盘里面的数据读到内存里,叫反序列化.

  7. Python进阶(九)----json模块, pickle模块, os模块,sys模块,hashlib模块

    Python进阶----json模块, pickle模块, os模块,sys模块,hashlib模块 一丶序列化模块 什么是序列化: ​ 将一种数据结构,转换成一个特殊的序列(特殊字符串,用于网络传输 ...

  8. python学习之文件读写,序列化(json,pickle,shelve)

    python基础 文件读写 凡是读写文件,所有格式类型都是字符串形式传输 只读模式(默认) r  f=open('a.txt','r')#文件不存在会报错 print(f.read())#获取到文件所 ...

  9. Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式

    Python第十四天 序列化  pickle模块  cPickle模块  JSON模块  API的两种格式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Py ...

随机推荐

  1. iOS 声明属性关键字的总结

    atomic: 原子操作(原子性是指事务的一个完整操作,操作成功就提交,反之就回滚. 原子操作就是指具有原子性的操作)在objective-c 属性设置里面 默认的就是atomic ,意思就是 set ...

  2. Mac JDK 多版本共存

    1.    安装各JDK版本,安装后通过Java -version检测是否安装好    2.    打开~/.bash_profile,没有的话创建    vim ~/.bash_profile   ...

  3. Windows 7 繁体中文MSDN原版

    Win7 SP1 64位旗舰版繁体版ISO镜像(香港):文件名:hk_windows_7_enterprise_with_sp1_x64_dvd_620688.isoSHA1:82D59B099333 ...

  4. LR工作原理

    LoadRunner的总体架构图,包括各个组件VUGen, Controller和Analysis之间的关系. LoadRunner由四大组件组成:VuGen.控制器.负载发生器和分析器. 1.VuG ...

  5. I.MX6 2014 u-boot 测试修改

    /************************************************************************* * I.MX6 2014 u-boot 测试修改 ...

  6. 【USACO】The Cow Prom

    [题目链接] 点击打开链接 [算法] tarjan求强连通分量 [代码] #include<bits/stdc++.h> #define MAXN 20005 using namespac ...

  7. 架构:MVC

    ylbtech-架构:MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数 ...

  8. View Programming Guide for iOS ---- iOS 视图编程指南(三)---Windows

    Windows Every iOS application needs at least one window—an instance of the UIWindow class—and some m ...

  9. UVa 11040 Add bricks in the wall (水题递推)

    题意:给定一个金字塔,除了最后一行,每个数都等于支撑它的两个数的和,现在给奇数行的左数奇数位置,求整个金字塔. 析:很容易看出来,从下往上奇数行等于 a[i][j] = (a[i-2][j-1] - ...

  10. Cardboard对像的公共方法与属性

    一.  public Pose3D EyePose(Eye eye)/// The transformation from head to eye. 获取眼睛在头部坐标系中的局部transform: ...