json数据就是遵循一种格式的文本数据,用来使代码标准化,前后端交互最好的数据格式之一。
json数据就是个字符串,可以表示python中的数据,比如可以把dict,list等数据统统转化成json字符串,方便交流。
json模块四种常用方式:
带s的:
json.loads #把json字符串转化为python数据
json.dumps #把python数据转化为json字符串
不带s的:
json.dump #把python数据转化为json字符串并储存在文件中
json.load #把文件中的json字符串转化为python数据
例子:
1、json数据转化为python对象
# json数据,转换成,python对象
# 1.字符串-》python对象
json_str = '{"name": "心蓝", "age": 18, "featue": ["高", "富", "帅"]}'
obj = json.loads(json_str)
print(obj['name'])
print(type(obj))
# 2.文件-》python对象
with open('demo.json', 'r', encoding='utf-8') as f:
obj2 = json.load(f)
print(obj2)
print(type(obj2))
运行结果:
2、python对象转换为json数据
import json
# python对象,转换成,json数据
# 1. pytho对象-》json字符串
teacher = {
"name": "心蓝",
"age": 18,
"featue": ["高", "富", "帅"]
}
json_str = json.dumps(teacher, ensure_ascii=False, indent=True)
# ensure_ascii = Fasle 可输出中文,否则,就是unicode
# indent = True 可以缩进输出,看起来比较清晰,默认是Fasle
# 会让数据体积变大
print(json_str)
print(type(json_str))
# 2. pyt对象-》json数据并写入文件
with open('test.json', 'w', encoding='utf-8') as f:
json.dump(teacher, f)
#之后会生成一个test.json文件,里面写入了teacher的json数据!
运行结果:
序列化时还可以对dict的key进行排序:
转化为json数据时顺便排序了。