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)