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

迭代表格行调用IBM Watson NLU时如何处理返回的报错

解决方法

核心是通过Python的try-except异常捕获机制处理接口调用失败的场景,报错时自动生成填充N/A的结构一致的行,不会中断循环执行。

修改后完整代码

import pandas as pd
# 原有IBM NLU相关包的导入逻辑保持不变即可

masterdf = pd.DataFrame()

for index, row in df.iterrows():
    text2 = row['CONTENT']
    try:
        # 原有调用NLU接口、解析返回结果的逻辑全部放入try块
        response = natural_language_understanding.analyze(
            text = text2,
            features=Features(sentiment=SentimentOptions(targets=["Irish"]))).get_result()
        json_tbl = pd.json_normalize(response['sentiment'], 
                           record_path='targets',
                           meta=[['document','score'], ['document','label']])
        json_tbl = json_tbl.set_index([pd.Index([index])])
    except Exception as e:
        # 接口报错时构造字段完全对齐、值为N/A的行
        json_tbl = pd.DataFrame({
            "text": ["Irish"],
            "score": ["N/A"],
            "label": ["N/A"],
            "document.score": ["N/A"],
            "document.label": ["N/A"]
        }, index=[index])
    print(json_tbl.head())
    # 替换已被pandas废弃的append方法,用官方推荐的concat拼接
    masterdf = pd.concat([masterdf, json_tbl], axis=0)

masterdf = pd.concat([df, masterdf], axis=1)
masterdf.head()

关键说明

  • 异常捕获部分新手直接使用通用Exception即可覆盖目标实体不存在、网络请求失败等所有接口调用异常场景,若要精准匹配IBM NLU的目标不存在错误,可替换为SDK对应的具体异常类
  • 构造N/A行时严格对齐正常返回的字段结构,避免后续和原表合并时出现列错位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:36:05