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

Python:捕获IndexError后插入空行并继续for循环避免代码中断

实现方案

核心修改逻辑

  • 将try-except异常捕获逻辑放到for循环内部:你当前的代码把整个循环包在try块里,触发一次异常就会直接终止整个循环,完全无法继续执行后续迭代。移到循环内部后,异常只会中断当前次的处理,自动进入下一轮循环。
  • 捕获到IndexError时向结果列表追加和get_data返回结构匹配的空值:最终导出CSV时,空值对应的行就会展示为空行,完全符合你要的位置对应要求。
  • 把DataFrame生成、CSV写入操作移到循环结束后执行:你原本的代码每次循环都重复写一次文件,属于完全冗余的IO操作,移到最后统一处理可以大幅提升执行效率。

修改后可运行代码

import pandas as pd

d = []
# 如果你的get_data返回的是字符串而非字典,把empty_placeholder改为空字符串""即可
empty_placeholder = {}

for i in range(len(df)):
    try:
        output = df.loc[i, "column_1"]
        api_result = get_data(output)
        d.append(api_result)
    except IndexError:
        # 原代码中的address变量未在循环内定义,这里替换为当前处理的column_1值,可自行调整
        print('ERROR at index {}: 当前处理值 {!r}'.format(i, output))
        # 追加空占位符,对应CSV中的空行
        d.append(empty_placeholder)

# 全部数据处理完成后统一导出
result_df = pd.DataFrame(d).apply(pd.Series)
# 加na_rep=""参数可以确保空值位置没有任何填充字符,是完全的空行
result_df.to_csv('results.csv', index=False, na_rep="")

补充说明

如果你的get_data返回的是单值而非字典结构,把empty_placeholder改为None或者空字符串即可,导出时同样会生成对应位置的空行。如果不需要保留索引列,to_csv的index=False参数可以保留,否则删掉即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:54:05