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

Python循环调用CSV导入多查询变量仅输出最后结果的问题排查

问题分析与解决

问题根源

你的print(resp.text)语句位于for循环外部,循环过程中每次执行requests.get都会覆盖resp变量,循环结束后只会打印最后一次请求的结果,也就是最后一个查询词的返回内容。

修复后的代码

把print语句缩进,放到for循环内部,这样每个查询词请求后都会立即打印结果:

import csv
import requests

with open('test.csv', 'r') as file:
    next(file) # 跳过表头
    varlist = [row[0] for row in csv.reader(file, delimiter=",")]

for var in varlist:
    payload = {'api_key': 'API_KEY', 'query':str(var), 'results':'10', 'country':'gb', 'page':'0'}
    resp = requests.get('https://api.example.com', params=payload)
    print(resp.text) # 缩进后放入循环内

额外优化建议

  • 添加异常处理,避免单个请求失败导致整个程序中断:
for var in varlist:
    payload = {'api_key': 'API_KEY', 'query':str(var), 'results':'10', 'country':'gb', 'page':'0'}
    try:
        resp = requests.get('https://api.example.com', params=payload)
        resp.raise_for_status() # 检查请求是否成功
        print(resp.text)
    except requests.exceptions.RequestException as e:
        print(f"查询词 {var} 请求失败: {e}")
  • 如果需要保存结果到文件,可在循环内追加写入:
with open('search_results.txt', 'a', encoding='utf-8') as result_file:
    for var in varlist:
        payload = {'api_key': 'API_KEY', 'query':str(var), 'results':'10', 'country':'gb', 'page':'0'}
        try:
            resp = requests.get('https://api.example.com', params=payload)
            resp.raise_for_status()
            result_file.write(resp.text + '\n')
        except requests.exceptions.RequestException as e:
            result_file.write(f"查询词 {var} 请求失败: {e}\n")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:50:20