前面介绍如何用PowerBI通过API接口获取数据的方法:
Power BI如何通过API获取数据?
它只介绍了单次调取,其实调用API的一大优势在于高效批量操作,一次性获取大量数据,降低时间成本,提升整体工作效率。
PowerBI也可以实现批量调取,仍然以上篇文章的案例为例,来看看如何一次性获取多只股票的历史交易数据,下面是具体操作步骤。
1、先获取一只股票的数据
按上面文章介绍的例子,比如先调取
贵州茅台2024年9月的交易记录,网址构造如下:
https://tsanghi.com/api/fin/stock/XSHG/daily?token={你的token}&ticker=600519&start_date=2024-09-01&end_date=2024-09-30
按前面介绍的方法通过web导入并整理后的效果是这样的:
这样就做好了一只股票的数据查询。
2、将单只股票的查询封装成自定义函数。
右键该查询,创建函数,
然后会弹出窗口,提示未找到参数,可以不用理会,直接点击“创建”。
函数名称可以任意命名,比如命名为"股票历史数据"。
然后打开编辑栏:
将“源”这个步骤以及前面的字符:
= () => let
源 = Json.Document(Web.Contents("https://tsanghi.com/api/fin/stock/XSHG/daily?token=你的token&ticker=600519&&start_date=2024-09-01&end_date=2024-09-30"))
改成:
= (exchange_code,ticker,start_date,end_date) =>
let 源 = Json.Document(Web.Contents("https://tsanghi.com/api/fin/stock/"&exchange_code&"/daily?token=你的token&ticker="&ticker&"&&start_date="&start_date&"&end_date="&end_date))
也就是将网址中的交易所代码、股票代码、开始日期、结束日期参数化,并用&将它们合并成一个完整的网址。
这样就制作完成了自定义函数。
3、调用自定义函数,批量获取数据
你想调用哪些股票的交易数据,先做好一个表,比如:
由于我们在自定义函数中没有指定参数类型,默认都是文本,所以这个列表中的每列字段类型也都改成文本型。
点击调用自定义函数:
在弹出的窗口中,"功能查询"选择上面建好的自定义函数,并在每个参数中选择相应的列:
然后表中就新增了一列:
展开即可得到这个列表中每只股票的交易数据,这样就实现了多只股票的一次性批量获取。
其实这个方法和我们之前介绍用自定义函数批量合并excel的思路是一致的:PowerQuery批量合并Excel,原来这个方法更好用
本文的分享仅用于学习交流,数据的获取和使用请确保符合法律法规和网站使用规范。
更多Power BI教程见:
PowerBI星球