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

Pandas调用API函数新增列时如何跳过JSONDecodeError异常

错误原因

你之前的写法存在三个核心问题:

  • 第一种写法把try...except套在for循环外层,只要触发一次报错整个循环就直接终止,不会继续执行后续行
  • 第二种写法except后面直接写了完整的错误提示文本,不符合Python异常捕获的语法规范
  • 每次循环都给df的new列重复赋值,属于多余操作,既影响性能也没有必要

正确实现代码

首先需要先导入对应的异常类:

import pandas as pd
from json import JSONDecodeError

# 原有初始化df的逻辑保持不变
df = pd.DataFrame(data = myarray)
df.columns=["A"]
df['B']= 'US'

array_thing=[]
for i in range(len(df)):
    try:
        # 调用成功就追加返回结果
        res = mycoolfunction(df.iloc[i, 0], df.iloc[i, 1])
        array_thing.append(res)
    except JSONDecodeError:
        # 触发指定错误就追加Error占位,要填空值就改为append(None)
        array_thing.append("Error")

# 循环结束后统一给df赋值新列
df['jsoncode'] = array_thing
df

补充说明

如果mycoolfunction还可能抛出网络异常、超时异常等其他类型的错误,可以在except后用括号包含多个需要捕获的异常类型,示例:
except (JSONDecodeError, ConnectionError, TimeoutError):

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 17:54:00