You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何从API链接列表批量加载数据并修复requests请求报错

问题解答

错误原因

requests.get() 仅支持传入单个字符串格式的URL发起请求,你直接将URL列表作为参数传入,参数类型不匹配会直接触发报错。另外你写的[(x) for x in api_links]是无意义的列表推导,运行结果和原api_links列表完全一致,没有做任何单URL的拆分处理。
后续的解析逻辑也建立在「单次请求对应单接口响应」的前提下,传入列表得到的不是合法的响应对象,自然无法调用.text属性、加载JSON数据。

正确实现代码

你需要遍历所有API链接,逐个发起请求后解析返回结果,汇总成目标数据列表。建议加上基础异常处理,避免单个接口请求失败导致整个程序崩溃:

import requests
import json

api_links = ['https://api.blahblah.com/john', 'https://api.blahblah.com/sarah', 'https://api.blahblah.com/jane']
data_lst = []

for api_url in api_links:
    try:
        # 发起单个请求,可根据接口实际情况调整超时时间
        resp = requests.get(api_url, timeout=10)
        # 校验HTTP状态码,4xx、5xx类错误会主动抛出异常
        resp.raise_for_status()
        # 解析JSON数据,resp.json()是requests内置的JSON解析方法,等价于json.loads(resp.text)
        parsed_data = resp.json()
        data_lst.append(parsed_data)
    except Exception as e:
        print(f"请求{api_url}失败:{str(e)}")
        # 失败场景可根据业务需求选择重试、跳过或者追加占位值
        data_lst.append(None)

# 最终得到的data_lst就是和链接顺序一一对应的接口返回数据列表

如果需要请求的接口数量较多、对速度有要求,可以替换为aiohttp做异步并发请求,上述同步遍历的写法逻辑最简单,适合绝大多数常规场景。


内容的提问来源于stack exchange,提问作者ducttape101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 14:09:18