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

如何根据响应重复for循环?解决API请求429限流重试问题

解决429限流后的重试问题

你的代码核心问题是遇到429后仅休眠一次就跳过当前行,没有重试逻辑。把单条行的处理改成循环重试结构就能解决,以下是修改后的代码:

import time

# 遍历每行并跟踪行号,对应你期望的输出编号
for line_num, line in enumerate(lines, start=1):
    is_success = False
    while not is_success:
        print(line_num)
        # 拆分返回值,代码更清晰
        parsed_data, resp_code = item_data(line)
        if resp_code != 429:
            with open('out.csv', 'a') as f:
                # 建议加换行符,避免输出内容挤在同一行
                f.write(f"{parsed_data}\n")
            print('Success!')
            is_success = True
        else:
            print('Failed')
            time.sleep(300)
            # 循环自动回到当前行重新执行

关键改动说明

  • 用enumerate跟踪行号,实现你期望的输出编号格式
  • 给每行添加while循环,只要未成功就一直重试当前行
  • 拆分item_data的返回值,让状态码判断逻辑更直观
  • 写入文件时追加换行符,保证输出格式整洁

运行这段代码后,遇到429会自动休眠300秒,然后重新尝试当前行,直到成功后再处理下一行,完全匹配你给出的示例输出效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:30:54