完全独立于程序语言的轻量文本数据交换格式,用来生成和解析json数据格式的库
2.json的2种数据结构 第一种:键值对 语法:{"key":value,,,,}第二种:有序列表 3.json和python的数据类型比对Python
JSON
dict
object
list,tuple
array
str
string
数字类型
Number
True
true
False
false
NONE
null
4.json方法 反序列化:将json字符串转换为其他数据结构/对象 json.load(obj) 读取json文件并转换为python对象应用场景: 读取json文件 with open("json_file.json") as fp:al = json.load(fp)print(al)最终输出结果:{'name': 'Mona', 'age': 28, 'isFemale': True} json.loads(obj) 将json字符串转换为python对象 序列化:将其他数据结构转换为json字符串 json.dump(obj,file[,indent][,ensure_ascii][,sort_keys][,separators]) 将python对象转换为json字符串并写入文件中应用场景: 写入json文件 import jsondict = {'name':'Mona', 'age':28,'isFemale':True}with open("json_file.json","w") as fp:json.dump(dict, fp)最终生成json文件,内容如下:{"name": "Mona", "age": 28, "isFemale": true} json.dumps(obj[,indent][,ensure_ascii][,sort_keys][,separators]) 将Python对象转换为json字符串参数indent是缩进空格 dict = {'name':'Mona', 'age':28,'isFemale':True}j_dict = json.dumps(dict,indent=4)print(j_dict)最终结果:{"name": "Mona","age": 28,"isFemale": true} 参数ensure_ascii 非ascii的进行转移 默认为True 场景1: 使用默认值Trueimport jsondict = {'name':'Mona', 'age':28,'isFemale':True,'com':'坚持'}j_dict = json.dumps(dict,indent=4,ensure_ascii=True)print(j_dict)最终输出结果:{"name": "Mona","age": 28,"isFemale": true,"com": "\u575a\u6301"}----------------------------------------------------场景2: 使用Falseimport jsondict = {'name':'Mona', 'age':28,'isFemale':True,'com':'坚持'}j_dict = json.dumps(dict,indent=4,ensure_ascii=False)print(j_dict)最终输出结果:{"name": "Mona","age": 28,"isFemale": true,"com": "坚持"} 参数sort_keys 编码顺序输出 默认为False 场景1: 键按照字母顺序升序输出import jsondict = {'name':'Mona', 'age':28,'isFemale':True,'com':'坚持'}j_dict = json.dumps(dict,indent=4,sort_keys=True)print(j_dict)最终输出结果:{"age": 28,"com": "\u575a\u6301","isFemale": true,"name": "Mona"}