阿宁的Python学习-----序列化和反序列化

概述

1、为什么要序列化

因为TCP/IP协议只支持字节数组的传输,不能直接传对象。对象序列化的结果一定是字节数组!当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列在恢复为对象。

2、序列化和反序列化

序列化:及有序的列,数据转换成二进制的有序的过程

协议:规定序列化和反序列化的转换方式就是把数据保存成二进制存储起来,其是定义的规则,其规则称为协议,如果规定了协议,则可以尽心序列化和反序列化

反序列化:将有序的二进制序列转换成某种对象(字典、列表等)称为反序列化

持久化:序列化保存到文件就是持久化,序列化未必会持久化,序列化往往是传输或存储。可以将数据序列化后持久化,或者网络传输,也可以将从文件或网络接受到的字节序列反序列化。

JSON

1、概述

JSON是一种轻量级的数据交换格式,它基于ECMAscript(w3c制定的JS规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据

2、JSON的数据类型

其key必须是字符串,其值可以是

双引号引起来的字符串,数值,true和false,null(None),对象(字典),数组(列表)这些都是值

在这里插入图片描述

1 string:

字符串,由双引号包围起来的任意字符的组合,可以有转义字符


2 number :
数值,有正负数,整数,浮点数


3 对象:
无序的键值对集合
格式:{key1:value1,…keyn:valuen}
key 必须是字符串,需要使用双引号包围这个字符串,value可以是任意合法的值

在这里插入图片描述

其表示要么是{},要么有key,value,若key:value完成,则后面不能有逗号,一旦有逗号,则表示后面还有数据


4 数组 :
在这里插入图片描述

3、JSON常用方法
方法功能
dumpsjson编码
dumpjson编码并存入文件
loadsjson解码
loadjson解码,从文件读取数据
4、应用
import json
d = {'name':'tom','age':20,'interest':['music','movie']}
j = json.dumps(d)
print(j)
d1 = json.loads(j)
print(d1)

#输出结果
{"name": "tom", "age": 20, "interest": ["music", "movie"]}
{'name': 'tom', 'age': 20, 'interest': ['music', 'movie']}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值