decode encode 网络传输相关

发布时间 2023-09-05 18:09:24作者: 勋勋的大宝贝

JSON数据格式是一个统一的标准,

 

socket传输的是字节,需要将字符串转成字节

序列化

反序列化

序列化、反序列化、编码、解码的关系:

此段来自苑昊老师的视频讲解:

比如:

后端用python写的,比如python有个数据想传给前端,

例如一个字典数据 info = {"name":"李凤娟", "age":18},如果想把这个数据传递给前端,

网络传输都是字节,所有的socket都是传输的字节,首先现将info字典转换成字符串,不能使用str直接硬转(硬转后再转换回来不好处理,所以不要硬转,有一个统一的格式json字符串),现将数据转换为JSON字符串。

现在JSON字符串不能在网络上传输,需要转换成字节才能传过去,这时候涉及到编码(将字符串转换成字节码)

 

 

 

前端js写的:前端接收到字节码后,首先需要解码(将字节码转换成字符串,即JSON字符串),然后再讲JSON字符串转换成js认识的Object对象,然后才能使用

 

 

Python里json数据转换

1.json:是一种轻量级的数据交互格式,采用完全独立于编程语言的文本格式来存储和表示数据。

Python语言使用JSON有很大的优势,因为JSON无非就是一个单独或一个内部元素都是字典的列表,所以JSON可以直接和Python的字典或列表进行无缝转换。

2.Json格式数据转化

通过json.dumps(data)方法把Python数据转为为json数据

data = json.dumps(data)

如果有中文可以带上:ensure_ascii=False参数来确保中文正常转换

通过json.loads(data)方法把数据转化为了python列表或字典。

data = json. loads (data)