json字符串与字典之间的相互转换,即loads(load)dumps(dump)
# JSON字符串 和 字典之间的相互转换
#
# 头脑中的信息 --》内在的数据结构
#
# 数据 ---》内存中的数据结构 ---》 字典 取值方便
#
# 想记录下来 --》 持久化
# 想表达出来 让别人知道 --》 序列化 把内存中的信息数据结构变成 通用的 文本或文件
#
#
# 我的一个想法 --序列化--》文字 --反序列化-》你的想法
# JSON本质文本,方便传输,存储
# 字典是内存中的数据结果,方便提取数据
# 使用字典构造请求 --》转字符串发送 --》收到响应字符串 --》转字典->提取数据
# 1. JSON字符串转 字典
import json #json转字典 json_str = '{"a": 1, "b":2, "c":true, "d":null}' data_dict = json.loads(json_str) print(type(data_dict), data_dict['c']) # 2. 字典转JSON data_dict = {'b': 2, 'c':True, 'd': None, 'e': '张三', 'f': [1, 2, 3], 'a': 1} json_str = json.dumps(data_dict, indent=2, ensure_ascii=False, sort_keys=True) print(json_str) # 3. JSON文件转字典 with open(r'D:\20期\20期\day08\data.json') as f: data_dict = json.load(f) print(data_dict) # 4. 字典--》JSON文件 with open(r'D:\20期\20期\day08\data2.json', 'w') as f: json.dump(data_dict, f)
##########res.json()是指,将响应结果转化为符合json格式的字典,方便提取数据
import requests def test_get(): url = 'https://httpbin.org/get?a=1&b=2' res = requests.get(url) res_dict = res.json() a = res_dict['args']['a'] b = res_dict['args']['b'] assert a == '1' assert b == '2' # b = res_dict.get('args', {}).get('b')