下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.9 Power Query 导入Web API数据

Web和Web API有什么不同?从范围来看,Web API是Web数据的子集;从网页定义来说,网页返回的内容就是API(应用程序界面)数据,然后通过浏览器进行具体的数据解析,呈现出来具体网页的内容:图片、文字、格式等。但有一类特殊的API,它返回的内容不是HTML格式的数据,而是标准文本格式数据,格式呈现的结果相对来说比较简单,返回的可用的数据格式通常如下。

■ JSON数据格式:JSON是层次数据的一种。

■ XML 数据格式:XML 也是层次数据的一种。

■ 类XML或JSON格式:这类数据非常像XML或JSON,但实际上不是。我们将这部分数据称为伪层次数据。

随着技术的发展,API数据处理方式也慢慢成为主流,很多网站已经将它们的服务封装成了标准的API。需要的用户直接通过API调用就可以完成数据获取,但是目前多数API 都是采用收费模式进行数据提取,因此要特别注意进行API调用时费用的问题。

为了让大家了解到非常典型的伪层次数据处理,这里返回API的数据既不是JSON,也不是XML的数据。我们就以这一类非常特殊的数据来演示如何在Excel和Power BI中进行伪层次数据的获取和处理。这里我们以东方财富网的基金网站的即时基金净值为例,这是一个基金净值即时收益的API,可以直接在浏览器访问,访问的结果如图2.91所示。

图2.91 网页API数据结果

这些API的结果看起来像JSON,但是实际上不是JSON,而是伪JSON的数据格式,那么如何从这类伪JSON文件中提取需要的内容呢?

2.9.1 Excel 实现Web API数据获取

在Excel中获取Web API的方式和在网页中实现数据爬取的方式相同,在Excel的界面中的“数据”选项卡下单击“获取数据”下拉按钮,在下拉列表中选择“自其他源”→“自网站”命令。在弹出的对话框中输入网址,输入完成后单击“确定”按钮。由于网址格式无法识别,还要进行进一步操作,右击后在弹出的快捷菜单中选择如图2.92所示的文本方式进行数据解析。

图2.92 数据格式的选择

完成格式转换后会发现结果包含乱码,如图2.93所示。原因是当前文本解析的方式和网页提供的解析方式不同,原网页代码提供的是Unicode 模式,而当前系统将网页代码转换成了GB32,GB32的数值偏码为936。

图2.93 网页数据解析界面

要想解决编码的问题,需要修改M语言的文件导入格式,将其修改为UTF-8即可。按照如下的格式进行修改将显示正常的中文,如图2.94所示。

图2.94 修改M语言代码后的正常文本

获取完这些数据内容之后,接下来就可以按照自己的需要进行数据的清洗和重构,重构数据完成后的结果如图2.95所示。

图2.95 清洗和重构后的数据

在完成了数据的清洗和重构之后,Excel 支持将最终的数据实现多向输出。

2.9.2 Power BI 实现Web API数据获取

Power BI进行Web API数据爬取和Excel进行Web API数据爬取基本上一样,我们可以在Power BI“主页”选项卡下单击“获取数据”下拉按钮,在下拉列表中选择“从Web”,并输入网址,输入完成后单击“确定”按钮进行连接,如图2.96所示。

图2.96 获取网页内容设置

由于获取的数据不是XML,也不是JSON,伪JSON格式必须按照伪JSON的方式进行处理,这里在弹出的文件解析界面中需要手动选择文件解析的格式,即右击文件,在弹出的快捷菜单中选择“文本”命令,如图2.97所示。

图2.97 设置数据解析格式为文本格式

在将数据解析格式设置为文本格式后也存在相应的乱码问题,这里需要通过设置正确的文件编码,才能够获取到正确的数据,数据结果如图2.98所示。

图2.98 设置与修正数据乱码

在完成了数据的解析后,还需要进行清洗和重构,图2.99所示为基于清洗和重构后Power BI数据处理后的最终结果。

图2.99 Power BI 重构后的最终数据 E74gOkiAQRaJ8P8Dhnrqj8RvCWoZyvc13gowJ/nJ9WSFy71/4nu97QbpjQxA3g4x

点击中间区域
呼出菜单
上一章
目录
下一章
×