23、Power Query-XML与JSON数据获取
首先掃盲:
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于JavaScript的一個(gè)子集;
XML(Extensible Markup Language)即可擴(kuò)展標(biāo)記語(yǔ)言,Xml是Internet環(huán)境中跨平臺(tái)的,依賴于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。
兩者的共同優(yōu)點(diǎn)是都是文本表示的數(shù)據(jù)格式,可以跨平臺(tái)、跨系統(tǒng)交換數(shù)據(jù)。
要是還沒有看懂這段文字,我們就直接來(lái)看代碼。
下面是一段簡(jiǎn)單的Json代碼:
{"name": "中國(guó)","province": [{"name": "黑龍江","cities": {"city": ["哈爾濱", "大慶"]}}, {"name": "廣東","cities": {"city": ["廣州", "深圳", "珠海"]}}, {"name": "臺(tái)灣","cities": {"city": ["臺(tái)北", "高雄"]}}, {"name": "新疆","cities": {"city": ["烏魯木齊"]}}] }從代碼的角度很明顯它是”國(guó)家——省份——城市“的表,我們要怎么獲取它的數(shù)據(jù)呢?
下面我們就用Power Query去獲取它,依舊是選中——”從表“進(jìn)行操作。
這個(gè)時(shí)候我們需要用到的菜單是”轉(zhuǎn)換“——”分析“。
發(fā)現(xiàn)它底下就有兩個(gè)選項(xiàng):
1、XML
2、JSON
這次我們選擇"Json"。
接著我們依次按照”國(guó)家——省份——城市“進(jìn)行展開。
這樣我們就獲取成功了,我們可以發(fā)現(xiàn),這個(gè)JSON代碼的結(jié)構(gòu)是相當(dāng)有規(guī)律的,有興趣的胖友可以去了解學(xué)習(xí)一下。
說(shuō)完Json,我們接著聊一下XML代碼,這個(gè)我們見的就比較多了,我們的Excel的文件就是這樣構(gòu)成的。
比如我們把剛剛做的這個(gè)excel改一個(gè)擴(kuò)展名為”rar“,進(jìn)行解壓操作。
我們可以發(fā)現(xiàn),其實(shí)每一層,都是由XML文件組成的。
下面我們給出這樣一段XML代碼。
<!-- Edited by XMLSpy?? --> <breakfast_menu> <style type="text/css"/> <food> <name>Belgian Waffles</name> <price>$5.95</price> <description> Two of our famous Belgian Waffles with plenty of real maple syrup </description> <calories>650</calories> </food> <food> <name>Strawberry Belgian Waffles</name> <price>$7.95</price> <description> Light Belgian waffles covered with strawberries and whipped cream </description> <calories>900</calories> </food> <food> <name>Berry-Berry Belgian Waffles</name> <price>$8.95</price> <description> Light Belgian waffles covered with an assortment of fresh berries and whipped cream </description> <calories>900</calories> </food> <food> <name>French Toast</name> <price>$4.50</price> <description> Thick slices made from our homemade sourdough bread </description> <calories>600</calories> </food> <food> <name>Homestyle Breakfast</name> <price>$6.95</price> <description> Two eggs, bacon or sausage, toast, and our ever-popular hash browns </description> <calories>950</calories> </food> </breakfast_menu>下面我們同樣直接拉到PQ里面整一下。
分析發(fā)現(xiàn)其實(shí)我們只要擴(kuò)展”food“這個(gè)表,直接點(diǎn)擊”Table“。
下面我們還是通過一個(gè)實(shí)例來(lái)鞏固。
從外部XML文件獲取數(shù)據(jù),進(jìn)行處理。
”要求:從demo.xml文件中統(tǒng)計(jì)上世紀(jì)年各年代、國(guó)家歌手的數(shù)量?“
這個(gè)時(shí)候我們是通過一個(gè)新的方法進(jìn)行打開:Power Query——從文件——從XML。
選擇”CD"表點(diǎn)編輯進(jìn)入處理。(下面的style是樣式表,我們不需要關(guān)注。)
很高級(jí),直接全部獲取了。
下面我們直接處理我們的需求,根據(jù)國(guó)家以及年代匯總歌手的數(shù)量。
我們最辣手的是處理一下年代,其實(shí)很簡(jiǎn)單,從“YEAR”左邊第2個(gè)位置開始取一位即可,加上后綴“0年代”。
效果如下:
最后進(jìn)行“分組依據(jù)",根據(jù)”國(guó)家“——”年代“進(jìn)行計(jì)數(shù),對(duì)”年代“進(jìn)行”透視列“操作。
得到最終結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的23、Power Query-XML与JSON数据获取的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 22、Power Query-文本字符的
- 下一篇: Windows下mysql忘记root密