前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Power Query 系列 (04) - 从 Web 导入数据

Power Query 系列 (04) - 从 Web 导入数据

原创
作者头像
StoneWM
修改2019-09-17 10:44:07
1.8K0
修改2019-09-17 10:44:07
举报
文章被收录于专栏:Stone的专栏

Power Query (PQ) 从 Web 导入数据,主要有如下几种应用:

  • 数据包含表格格式,导入表格中的数据
  • Restful API 数据导入
  • OData 格式数据导入

下面就介绍以上三种数据格式的导入方法。

导入页面中含有 table 的数据

因为网络页面具有很大不确定性,比如数据变化,或者页面过几天就不见了,所以无法保证我所选取的页面在您查看的时候一定还在。但基本方法类似,您也可以找到一个类似的页面来操作。

这里给出的一个页面是中国 211 大学的一个清单,网址为 https://www.dxsbb.com/news/2799.html,页面含有两个表格,如下:

现在我们将页面的 211 大学数据导入到 PQ Query 。切换到【数据】选项卡,通过【数据获取】- 【自其他源】- 【自网站】,打开连接界面:

输入上面的网址,点击确定按钮:

在接下来导航器界面中,左边部分已经出现了两个 table:table0 和 table1,右边预览区默认在表视图。可以点击 table0 或者 table1,右边预览区在表视图中会将解析到的数据预览。

点击加载按钮,将数据加载到 Excel 工作表,导入的工作完成。

导入 Restful API 数据

下面演示提供 Restful 服务的后端从 url 导入 json 格式数据的方法,本示例使用 SAP 系统提供的 Restful 服务。

之前曾经用不同语言实现过 Restful Service, 也在博客中记录了实现的过程。感兴趣的读者可以参考我的文章,或者网络上其他文章。如果不是程序开发人员的话,使用其他语言实现 Restful API 可能有一定难度。

我的相关文章链接:

在本示例中,Restful 服务返回的 json 格式数据如下:

代码语言:txt
复制
[
    {
        "mandt": "001",
        "empid": "1",
        "empname": "Stone Wang",
        "empaddr": "Wuhan"
    },
    {
        "mandt": "001",
        "empid": "2",
        "empname": "Alice Brown",
        "empaddr": "England"
    },
    {
        "mandt": "001",
        "empid": "3",
        "empname": "张三",
        "empaddr": "武汉"
    },
    {
        "mandt": "001",
        "empid": "4",
        "empname": "李四",
        "empaddr": "Wuhan"
    },
    {
        "mandt": "001",
        "empid": "5",
        "empname": "王五",
        "empaddr": "武汉经开"
    },
    {
        "mandt": "001",
        "empid": "6",
        "empname": "王二",
        "empaddr": "北京"
    }
]

切换到【数据】选项卡,通过【数据获取】- 【自其他源】- 【自网站】,打开连接界面。在页面中输入 url 路径:

一般来说,这种提供数据服务的 url 是需要校验用户是否是合法用户(authentication),在 SAP 提供的服务中,使用的是基本认证方式(basic authentication),所以接下来,进入认证界面,选择基本,输入登录的用户名和密码:

后续的操作与上一篇文章提到的导入 json 格式数据类似。本示例返回 json 格式是一个 json 数组,数组每一项是一个 json 对象,PQ 导入的时候,将数组对应到 List,将 json 对象对应到 Record:

将 List 转换成 Table:

点击 Column 右边的图标,进行展开操作:

展开的时候,不使用原始列名作为前缀:

点击确定,数据导入到 PQ:

主页中,点击关闭并上载,数据上载至 Excel sheet。

导入 OData 格式数据

OData: 开放数据协议(Open Data Protocol,缩写 OData)是一种描述如何创建和访问 Restful 服务的 OASIS 标准。该标准由微软发起,前三个版本1.0、2.0、3.0 都是微软开放标准。第四个版本4.0 于 2014 年 3 月 17 日在 OASIS 投票通过成为开放工业标准。

OData 是用来查询和更新数据的一种 Web协议,提供了把存在于应用程序中的数据暴露出来的方式。OData 运用且构建于很多 Web 技术之上,比如 HTTP、Atom Publishing Protocol(AtomPub)和 JSON,提供了从各种应用程序、服务和存储库中访问信息的能力。OData 被用来从各种数据源中暴露和访问信息, 这些数据源包括但不限于:关系数据库、文件系统、内容管理系统和传统 Web 站点。

Restful 只是一种设计 Web 服务的思想,不是一种标准化的协议。正由于缺乏标准化,从而导致各家公布的 Restful API 统一通用方面的欠缺。OData 就是为弥补这种欠缺而被提出来的标准协议。

http://services.odata.org/ 这个站点提供了 OData data service 的示例,并且可以对 OData 数据进行 CRUD 操作。我们在浏览器中这个页面,点击 Browse the Read-Only Northwind Service 超链接,进入 https://services.odata.org/V3/Northwind/Northwind.svc/ 页面。这个页面在浏览器中的显示如下:

接下来在 PQ 中导入 OData 格式数据。切换到【数据】选项卡,通过 【获取数据】- 【自其他源】- 【从 OData 源】打开连接界面:

在 URL 中输入服务的根路径,点击确定按钮:

在接下来的导航器界面中,左边导航区已经可以看到有哪些数据了,比如 Customers, Products 等,选择一个或者多个数据导入 PQ 即可。这里我们选择 Categories:

点击加载按钮,数据加载到 PQ:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导入页面中含有 table 的数据
  • 导入 Restful API 数据
  • 导入 OData 格式数据
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档