如何在 Power BI 中批量调用多个 API 链接实现高效数据获取

陌婷小哥_6627

陌婷小哥_6627

2026-04-07

534人浏览

原创

本文介绍一种基于 power query m 语言的批量 api 调用方案,通过函数封装与表驱动方式一次性加载多个 web api 数据源,支持自动刷新,避免重复手动配置。

本文介绍一种基于 power query m 语言的批量 api 调用方案,通过函数封装与表驱动方式一次性加载多个 web api 数据源,支持自动刷新,避免重复手动配置。

在 Power BI 中,面对 10 个甚至更多结构相似的 REST API 端点(如 /api/v1/sales, /api/v1/users, /api/v1/orders),逐一手动“获取数据 → 从 Web”不仅效率低下,更难以统一维护和调度刷新。幸运的是,Power Query 提供了强大的函数式能力与表遍历机制,无需 Python 或外部脚本即可原生实现批量请求。

核心思路是:将所有 API URL 存储为表格(Table),定义一个可复用的获取函数(GetUrl),再用 Table.AddColumn 对每一行 URL 应用该函数,最终展开返回的数据表结构。

以下是一个完整、可直接复用的 M 查询示例:

let
    // 定义安全、可复用的 API 获取函数
    GetUrl = (url) => 
        let
            // 使用 Web.Contents 发起请求;可根据需要添加 headers 或 timeout
            Response = Web.Contents(url, [
                Headers = [#"Accept" = "application/json"],
                Timeout = #duration(0,0,0,30)
            ]),
            // 解析 HTML 页面内容(适用于返回 HTML 的 API);
            // 若 API 返回标准 JSON,请改用 Json.FromValue(Response)
            ParsedPage = Web.Page(Response),
            // 取页面中第一个数据表(常见于嵌入式 HTML 表格)
            Data0 = try ParsedPage{0}[Data] otherwise #table({}, {})
        in
            Data0,

    // 构建 URL 列表(实际使用时替换为你的 10 个链接)
    Source = Table.FromRecords({
        [url = "https://jsonplaceholder.typicode.com/posts/1"],
        [url = "https://jsonplaceholder.typicode.com/posts/2"],
        [url = "https://jsonplaceholder.typicode.com/posts/3"]
        // ... 继续添加其余 URL
    }),

    // 对每行 URL 调用 GetUrl 函数,生成含嵌套表的新列
    #"Added Custom" = Table.AddColumn(Source, "Response", each GetUrl([url])),

    // 展开嵌套表(自动检测列名,勾选“使用第一行作为标题”更佳)
    #"Expanded Response" = Table.ExpandTableColumn(#"Added Custom", "Response", 
        {"id", "title", "body", "userId"}, // 示例字段名,请按实际 API 响应调整
        {"id", "title", "body", "userId"}),

    // 可选:添加来源标识便于追踪
    #"Added Source Url" = Table.AddColumn(#"Expanded Response", "SourceUrl", each [url], type text),

    // 清理中间列
    #"Removed Columns" = Table.RemoveColumns(#"Added Source Url",{"url"})
in
    #"Removed Columns"

✅ 关键优势说明:

  • ✅ 支持数据刷新:全部逻辑在 Power Query 内完成,发布到 Power BI Service 后可配置网关并启用计划刷新;
  • ✅ 错误隔离:单个 API 失败不会中断整个查询(配合 try ... otherwise 可自定义容错行为);
  • ✅ 结构统一:若各 API 返回相同 Schema(如均为 JSON 数组),展开后可直接合并为一张宽表;
  • ✅ 易于扩展:URL 列表可来自 Excel、SharePoint 或数据库,实现配置化管理。

⚠️ 注意事项:

  • 若 API 返回 JSON,请将 Web.Page(...) 替换为 Json.FromValue(Web.Contents(...)),并确保响应为数组(如 [{"a":1},{"a":2}]),再用 Table.FromList(...) 或 Table.FromRecords(...) 转换;
  • 部分 API 需认证(Bearer Token、API Key),请在 Web.Contents 的 Headers 参数中添加对应字段;
  • 避免高频并发请求——Power BI 默认串行执行,如需并行请谨慎评估服务端限流策略;
  • 生产环境建议增加日志列(如 Status, Timestamp, ErrorDetail),便于监控异常。

掌握此模式后,你不仅能批量拉取 API,还可进一步封装为参数化查询、构建动态 API 目录,真正实现低代码、高可控的数据集成自动化。

大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2055

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3042

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1036

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

3459

7

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

2023.09.14

13146

6

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.14

1585

5

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

2023.12.21

3557

3

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

2024.03.01

5721

5

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

2023.06.29

2565

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习