import requests,jsonpath params = { "application": "app", "application_client_type": "weixin", } data = { "accounts":"huace_xm", "pwd":"123456", "verify":"rib5", "type":"username" } res = requests.post\ (url="http://shop-xo.hctestedu.com/index.php?s=api/user/login",params=params,data=data) print(res.text) #print(res.json()["data"]["token"]) # 转成json数据 --字典的写法 token_list = jsonpath.jsonpath(res.json(),"$..add_time_text","$..token") print(jsonpath.jsonpath(res.json(),"$..token")) # 前面输入 Json数据 规则 print(token_list) """商品收藏""" facor_data = {"id":"12"} res_facor = requests.post\ (url="http://shop-xo.hctestedu.com/index.php?s=api/goods/favor&token="+token_list[1],params=params,data=facor_data) print(res_facor.text) 这段代码为什么报错是:IndexError: list index out of range
时间: 2023-08-27 13:10:58 浏览: 104
Java_programming_for_client_HTTP_requests_classic__client http j
这段代码中使用了 jsonpath 库来提取响应结果中的 token 字段,但是在进行提取时,使用了一个列表索引 [1],但是 token_list 列表中可能没有第二个元素,所以会报 IndexError 错误,即列表索引超出了范围。建议在使用索引之前,先检查一下列表的长度,保证不会越界。例如,可以使用以下代码来检查 token_list 列表的长度:
```
if len(token_list) > 1:
res_facor = requests.post(url="http://shop-xo.hctestedu.com/index.php?s=api/goods/favor&token="+token_list[1],params=params,data=facor_data)
else:
print("token_list 长度不足,无法获取 token")
```
这样就可以避免 IndexError 错误的发生。
阅读全文