如何将列表值传入子函数,遍历拼接URL发起PUT请求
问题原因
你编写的代码无法运行的核心原因是:直接对字符串类型的URL前缀和列表类型的rft_id_list执行了拼接操作,Python不支持字符串与列表直接相加。
最优实现方案
遍历rft_id_list中的每一个ID值,逐个拼接生成目标URL后发起PUT请求即可,推荐使用f-string做字符串拼接,写法更简洁易读。
基础可用版本
import requests import json def send_put_requests(rft_id_list, headers): base_url = 'https://domain/api/link/' for rft_id in rft_id_list: # 拼接生成完整请求URL target_url = f"{base_url}{rft_id}" # 按接口要求调整PUT请求的请求体参数 put_payload = json.dumps({"请求字段": "对应参数值"}) # 发起PUT请求 response = requests.request("PUT", target_url, headers=headers, data=put_payload) # 按需处理响应结果 print(f"ID为{rft_id}的请求完成,响应状态码:{response.status_code}")
增强健壮性的优化版本
增加异常捕获逻辑,避免单个ID请求失败导致整个遍历任务终止:
import requests import json def send_put_requests(rft_id_list, headers): base_url = 'https://domain/api/link/' for rft_id in rft_id_list: try: target_url = f"{base_url}{rft_id}" put_payload = json.dumps({"请求字段": "对应参数值"}) # 增加超时设置,避免请求长时间卡住 response = requests.request("PUT", target_url, headers=headers, data=put_payload, timeout=10) # 自动校验HTTP请求状态是否异常 response.raise_for_status() print(f"ID为{rft_id}的请求成功,响应内容:{response.json()}") except requests.exceptions.RequestException as e: print(f"ID为{rft_id}的请求失败,错误信息:{str(e)}")
注意事项
- 代码中的PUT请求请求体可根据你的接口实际要求调整
- 如果接口要求URL路径末尾带斜杠,将拼接逻辑修改为
target_url = f"{base_url}{rft_id}/"即可 - 可根据实际业务需求调整
timeout参数的超时时间
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

