get请求返回一个列表,取出列表中的所有Id,然后再请求id的详情,存到一个字典中,对应格式为{id:value}
'''
import requests
from common.comon_login import *
host='******' # 测试地址
1、先用get请求获取列表数据
def get_list_mareial(s):
url=host+'/api/dict/material?Type=0&CategoryId=&SkipCount=0&maxResultCount=30&sorting='
header = {
'Accept-Language': 'zh-Hans'
}
res=s.get(url=url,headers=header)
print(res.json()) # 输出json格式文件
2、 使用jsonpath依赖包的方法提取id
res_list=res.json()['items']
print('res_list的结果为%s'%res_list)
import jsonpath
res_2=jsonpath.jsonpath(res_list,'$.*.id') # 由于这个请求下的list中的值有id,并且还嵌套其他的id,因为使用该方法取值,即定位在 根节点下的当前节点下的所有文件下的id的值
print(res_2)
3、定义一个空的dic1准备存放数据
dic1={}
for i in res_2:
# print(i)
url2=host+'/api/dict/material/'+'%s'%i # 将i传入
res_res_2=s.get(url=url2)
if i not in dic1.keys(): # 判断Id是都存在,不存在则加入字典中,并把响应作为value存在
dic1[i]=res_res_2 # i是一个变量,直接作为key传入即可。
print(dic1)
if __name__=='__main__':
s=requests.session()
login(s,username='test',password='***')
get_list_mareial(s)