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

Power Query嵌套JSON分页脚本开发技术求助

Power Query 迭代分页脚本适配方案

以下是适配你需求的Power Query分页代码,核心逻辑是通过递归函数循环请求API,直到响应的_pagination.next字段为空时停止:

let
    // 替换为你的测试API端点
    InitialUrl = "https://your-test-api-endpoint.com/data",
    // 定义递归分页函数
    GetAllPages = (url as text) as table =>
        let
            // 发送API请求并解析JSON响应
            Response = Json.Document(Web.Contents(url)),
            // 提取当前页数据(替换为你实际的数据字段路径)
            CurrentPageData = Response[data],
            // 展开嵌套JSON数据(复用你已有的展开逻辑)
            ExpandedData = Table.FromRecords(CurrentPageData),
            // 安全提取下一页链接,不存在则返回null
            NextPageUrl = try Response[_pagination][next] otherwise null,
            // 递归获取后续页面,无下一页则返回空表
            NextPageData = if NextPageUrl <> null then GetAllPages(NextPageUrl) else Table.FromRecords({})
        in
            // 合并当前页与所有后续页数据
            Table.Combine({ExpandedData, NextPageData}),
    // 启动分页请求
    AllData = GetAllPages(InitialUrl)
in
    AllData

关键细节说明:

  • 递归函数GetAllPages:是分页逻辑的核心,负责单页请求、数据提取、下一页判断及循环调用
  • try...otherwise容错处理:避免因_pagination.next字段缺失导致的脚本报错,直接返回null终止循环
  • 数据拼接:用Table.Combine将多页数据合并为完整表格
  • 自定义替换:记得把InitialUrl换成你的测试端点,Response[data]替换为业务实际需要提取的数据字段路径

调试建议:

  1. 先单独验证单页请求逻辑,确保能正常解析并展开嵌套JSON
  2. 逐步排查NextPageUrl的取值是否符合预期
  3. 若需添加请求头(如授权信息),可修改Web.Contents参数:
    Response = Json.Document(Web.Contents(url, [Headers=[Authorization="Bearer your-test-token"]]))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:05:34