博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
23、Power Query-XML与JSON数据获取
阅读量:2035 次
发布时间:2019-04-28

本文共 2214 字,大约阅读时间需要 7 分钟。

首先扫盲:

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript的一个子集;

XML(Extensible Markup Language)即可扩展标记语言,Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。

两者的共同优点是都是文本表示的数据格式,可以跨平台、跨系统交换数据。

要是还没有看懂这段文字,我们就直接来看代码。

下面是一段简单的Json代码:

{    "name": "中国",    "province": [{        "name": "黑龙江",        "cities": {            "city": ["哈尔滨", "大庆"]        }    }, {        "name": "广东",        "cities": {            "city": ["广州", "深圳", "珠海"]        }    }, {        "name": "台湾",        "cities": {            "city": ["台北", "高雄"]        }    }, {        "name": "新疆",        "cities": {            "city": ["乌鲁木齐"]        }    }]}
从代码的角度很明显它是”国家——省份——城市“的表,我们要怎么获取它的数据呢?

下面我们就用Power Query去获取它,依旧是选中——”从表“进行操作。

这个时候我们需要用到的菜单是”转换“——”分析“。

发现它底下就有两个选项:

1、XML

2、JSON

这次我们选择"Json"。

接着我们依次按照”国家——省份——城市“进行展开。

这样我们就获取成功了,我们可以发现,这个JSON代码的结构是相当有规律的,有兴趣的胖友可以去了解学习一下。

说完Json,我们接着聊一下XML代码,这个我们见的就比较多了,我们的Excel的文件就是这样构成的。

比如我们把刚刚做的这个excel改一个扩展名为”rar“,进行解压操作。

我们可以发现,其实每一层,都是由XML文件组成的。

下面我们给出这样一段XML代码。

Belgian Waffles
$5.95
Two of our famous Belgian Waffles with plenty of real maple syrup
650
Strawberry Belgian Waffles
$7.95
Light Belgian waffles covered with strawberries and whipped cream
900
Berry-Berry Belgian Waffles
$8.95
Light Belgian waffles covered with an assortment of fresh berries and whipped cream
900
French Toast
$4.50
Thick slices made from our homemade sourdough bread
600
Homestyle Breakfast
$6.95
Two eggs, bacon or sausage, toast, and our ever-popular hash browns
950
下面我们同样直接拉到PQ里面整一下。

分析发现其实我们只要扩展”food“这个表,直接点击”Table“。

下面我们还是通过一个实例来巩固。

从外部XML文件获取数据,进行处理。

”要求:从demo.xml文件中统计上世纪年各年代、国家歌手的数量?“

这个时候我们是通过一个新的方法进行打开:Power Query——从文件——从XML。

选择”CD"表点编辑进入处理。(下面的style是样式表,我们不需要关注。)

很高级,直接全部获取了。

下面我们直接处理我们的需求,根据国家以及年代汇总歌手的数量。

我们最辣手的是处理一下年代,其实很简单,从“YEAR”左边第2个位置开始取一位即可,加上后缀“0年代”。

效果如下:

最后进行“分组依据",根据”国家“——”年代“进行计数,对”年代“进行”透视列“操作。

得到最终结果:

你可能感兴趣的文章
CAS:乐观锁实现
查看>>
压力测试工具Apache ab
查看>>
Linux - Shell
查看>>
MySQL 如何执行关联查询
查看>>
算法运行时间n3,n2, n, nlogn对比
查看>>
java 中的suppressedException
查看>>
Rope --高效字符串处理数据结构
查看>>
Gap buffer -- 一个数据结构为可编辑的文本
查看>>
X/Open DTP模型,两阶段提交,JTA接口定义
查看>>
MySql binlog 日志
查看>>
spring 事务管理
查看>>
线程中实现不可中断的任务
查看>>
WebCollector提供免费代理
查看>>
将WebCollector导入MAVEN项目
查看>>
WebCollector爬虫的数据持久化
查看>>
插入排序
查看>>
谷歌面试题-100层楼两个棋子的问题
查看>>
Redis技术知识总结之三——Redis数据淘汰机制
查看>>
数据结构技术知识总结之一——二叉树
查看>>
JVM技术总结之二——GC机制
查看>>