json序列化:
Python中的dict-->json字符串
json反序列化:
json字符串-->Python中的
例如:
import json
demo_dict = {"name": "小小臭臭g", "age": "20", "number": 20200908}
# 序列化
json_str = json.dumps(demo_dict)
# json_str = json.dumps(demo_dict, ensure_ascii=False) # 汉字是否unicode编码, 默认为True
print(json_str)
print(type(json_str))
# 反序列化
python_dict = json.loads(json_str)
print(python_dict)
print(type(python_dict))
from idna import unicode
str2 = "\u5c0f\u5c0f\u81ed\u81edg"
print(unicode(str2))
序列化和反序列化:
可以就将其理解为数据的的编码和解码过程,一种语言系统下的数据结构只有这个系统下才能够识别运行;
当数据需要跨语言跨系统传输时,必须将其转成一种中间结构,这个中间结构能被双方识别并能够被还原,
这就是序列化和反序列
例1: json序列化
例2: 图像数据的传输你也可以认为是一个序列化和反序列化的过程,
在传输前图像信息序列化成一个二进制数据流带上图像格式信息,
接收方在接收到二进制流后识别出图像格式,将其还原为相应的图像对象显示出来.
无论是进程间、线程间的通讯,网络之间client和server通过socket通讯,还是把对象写到db
(实际上也是socket)。这些网络交互都是通过收发二进制流的,所以发送时候需要将对象序列化二进制
数据发送出去,之后接收端收到二进制数据,再通过反序列化变成对象。