You need to enable JavaScript to run this app. Power Query调用API的自定义函数无结果时出错,如何跳过错误继续运行?
优惠活动
大模型
产品
解决方案
定价
更多

Power Query调用API的自定义函数无结果时出错,如何跳过错误继续运行?

问题原因

你遇到的报错是因为当输入的NPI值在线上系统不存在时,API会返回空列表,此时代码中Source{0}尝试提取列表第一个元素就会触发「枚举中没有足够元素完成操作」的错误,导致查询终止。

解决方案

我们可以通过try...otherwise语句捕获错误,当请求无返回时直接输出空表,不打断后续值的处理,修改后的函数代码如下:

(MedStatus)=>
let
    Source = Json.Document(Web.Contents("https://data.cms.gov/data-api/v1/dataset/9138d25a-5d85-4a12-b3c9-070e544486db/data?filter[NPI]=" & Text.From(MedStatus))),
    // 捕获取数错误,无匹配数据时返回null
    Source1 = try Source{0} otherwise null,
    // 仅取到有效数据时执行后续转换,否则返回空表
    Result = if Source1 <> null then
        let
            #"Converted to Table" = Record.ToTable(Source1),
            #"Transposed Table" = Table.Transpose(#"Converted to Table"),
            #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true])
        in
            #"Promoted Headers"
        else #table({}, {})
in
    Result

补充注意事项

  • 如果运行时出现Web.Contents相关的权限提示,在Power Query的「数据源设置」中把该API域名加入允许列表,选择匿名访问即可。
  • 调用该函数处理整列数据后直接展开结果列,无匹配数据的行对应字段会自动填充空值,不会打断整体处理流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:18:02