List.Generate遍历RestAPI分页时无限生成空列表问题
Power Query REST API分页问题解决
你的错误出在两个核心点:
- 函数调用语法错误:
List.IsEmpty是函数,必须用圆括号传递参数,你写成了List.IsEmpty[x],这会被当成“从List.IsEmpty这个函数对象里取x字段”,直接触发字段访问错误。正确写法是List.IsEmpty([x])。 - 未处理null边界情况:如果
GetData请求失败返回null,直接调用List.IsEmpty([x])会报错,所以需要先判断[x]不为null,再检查列表是否为空。
修正后的代码如下:
= List.Generate( () => [x = try GetData(1) otherwise null, Page = 1], each [x] <> null and not List.IsEmpty([x]), each [x = try GetData([Page] + 1) otherwise null, Page = [Page] + 1], each [x] )
代码说明:
- 终止条件
[x] <> null and not List.IsEmpty([x]):只有当请求成功([x]不为null)且返回的列表不为空时,才继续循环。当数据耗尽返回空列表,或者请求失败返回null时,循环会自动停止,不会生成无意义的空列表项。 - 保留了原有的
try otherwise null逻辑,避免单个请求失败导致整个循环中断。
内容的提问来源于stack exchange,提问作者Nick Martini
相关产品推荐
相关产品推荐

