Python入门学习(八)JSON、反序列化、序列化
JSON是一种轻量化的数据格式,用于多程序语言之间的信息交互。
JSON本身也有好几种格式,但本质就是一个字符串,有object格式,其形式上类似于python的字典格式;另一种格式为array即数组格式,其形式上类似于python的列表。
不同的语言需要把交互的信息包装成相同的格式:即引号标识的字符串;字符串中的内容又需要适应不同的语言,使其可以各自转化为需要的格式;python中提供json.loads()方法转化为字典格式,其他如javascript中,可以转换为对象格式。
import json #json是一种轻量化的数据格式,用于多程序语言之间的信息交互 #JSON本身也有好几种格式,但本质就是一个字符串,其中如下为object格式 #其形式上类似于python的字典格式 json_str = '{"name":"qiyue", "age":18}' #不同的语言需要把交互的信息包装成相同的格式:即引号标识的字符串 #字符串中的内容又需要适应不同的语言,使其可以各自转化为需要的格式 #python中提供json.loads()方法转化为字典格式,其他如javascript中,可以转换为对象格式 student = json.loads(json_str) print(type(student)) print(student) print(student["name"]) print(student["age"]) #JSON另一种格式为array即数组格式,其形式上类似于python的列表 json_str1 = '[{"name":"qiyue", "age":18}, {"name":"wuyue", "age":16}]' student1 = json.loads(json_str1) print(type(student1)) print(student1) print(student1[0]["name"], student1[1]["age"])
如上述将JSON数据转换为python数据的过程也称为“反序列化”,即由字符串到某种语言数据的过程。
除了上述的object(对应python中的dict),array(对应python中的list),json中还有如下格式:string对应str,number对应int和float,true/false对应True/False,null对应None。
从某种语言的数据转换为json的字符串的过程称为“序列化”。
import json student = [ {'name': 'qiyue', 'age': 18, 'flag': False}, {'name': 'liuyue', 'age': 16} ] #序列化 json_str = json.dumps(student) print(type(json_str)) print(json_str)
浙公网安备 33010602011771号