如何从CSV文件的多URL批量提取API数据并分别保存为CSV文件?
实现批量自动化获取数据的方案
第一步:准备批量任务CSV
先把所有要处理的URL和对应文件名整理成一个CSV文件(建议命名为task_list.csv),格式示例如下:
| url | filename |
|---|---|
| https://api.football-data-api.com/league-matches?key=07275****3d8002&season_id=6135 | England Premier League_2021 |
| https://api.football-data-api.com/league-matches?key=07275****3d8002&season_id=xxxx | 其他联赛_xxxx |
第二步:修改Python脚本为批量版本
替换你原来的单URL脚本为以下代码,它会自动读取批量任务CSV并循环处理每一条数据:
import requests import pandas as pd # 读取批量任务文件,若文件不在脚本同目录,需填写完整路径(如"C:/xxx/task_list.csv") task_list = pd.read_csv("task_list.csv") # 复用原请求头配置 headers = {'Accept': 'application/json', 'Content-Type': 'application/json'} # 循环处理每一项任务 for _, task in task_list.iterrows(): target_url = task['url'] save_name = task['filename'] try: # 发送API请求 response = requests.get(target_url, headers=headers) response.raise_for_status() # 检查请求是否成功 # 解析并保存数据 json_data = response.json() df = pd.DataFrame(json_data['data']) df.to_csv(f"{save_name}.csv", index=False) print(f"✅ 已完成:{save_name}.csv") except Exception as err: # 捕获错误并打印,避免单个任务失败中断全部流程 print(f"❌ 处理 {target_url} 失败:{str(err)}")
关键注意点
- 确保批量CSV的列名是
url和filename,和脚本里的task['url']、task['filename']完全匹配 - 若API有请求频率限制,可在循环中添加
time.sleep(1)(需先导入time模块)避免被封禁 - 脚本执行时,所有生成的CSV会保存在脚本所在目录
内容的提问来源于stack exchange,提问作者danlowe
相关产品推荐
相关产品推荐

