本篇內(nèi)容主要講解“Python中Json數(shù)據(jù)的特點(diǎn)和實(shí)例用法”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Python中Json數(shù)據(jù)的特點(diǎn)和實(shí)例用法”吧!
創(chuàng)新互聯(lián)建站是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計(jì)公司的優(yōu)秀設(shè)計(jì)人員和策劃人員組成的一個(gè)具有豐富經(jīng)驗(yàn)的團(tuán)隊(duì),其中包括網(wǎng)站策劃、網(wǎng)頁(yè)美工、網(wǎng)站程序員、網(wǎng)頁(yè)設(shè)計(jì)師、平面廣告設(shè)計(jì)師、網(wǎng)絡(luò)營(yíng)銷(xiāo)人員及形象策劃。承接:網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、網(wǎng)頁(yè)設(shè)計(jì)制作、網(wǎng)站建設(shè)與維護(hù)、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫(kù)開(kāi)發(fā),以高性?xún)r(jià)比制作企業(yè)網(wǎng)站、行業(yè)門(mén)戶(hù)平臺(tái)等全方位的服務(wù)。
Json簡(jiǎn)介
Json(JavaScript Object Notation)
很多網(wǎng)站都會(huì)用到Json格式來(lái)進(jìn)行數(shù)據(jù)的傳輸和交換,就像上篇我提到的網(wǎng)易云音樂(lè)接口,它們返回的數(shù)據(jù)都是Json格式的。
這因?yàn)镴son是一種輕量級(jí)的數(shù)據(jù)交換格式,具有數(shù)據(jù)格式簡(jiǎn)單,讀寫(xiě)方便易懂等很多優(yōu)點(diǎn)。用它來(lái)進(jìn)行前后端的數(shù)據(jù)傳輸,大大的簡(jiǎn)化了服務(wù)器和客戶(hù)端的開(kāi)發(fā)工作量。
而且相對(duì)于XML來(lái)說(shuō),更加的輕量級(jí),更方便解析。
今天我們講講如何在python里玩轉(zhuǎn)Json數(shù)據(jù)?
在Json中,遵循“key-value”的這樣一種方式。
比如最簡(jiǎn)單的這種:“{"name" : "zhuxiao5"}”,跟python 里的字典似的,也是一個(gè)Json格式的數(shù)據(jù)。
復(fù)雜一點(diǎn)的比如這種(后文會(huì)多次使用到這個(gè)例子):
以上圖為例,再多說(shuō)幾句Json格式的特點(diǎn)
對(duì)象通過(guò)鍵值對(duì)表現(xiàn);
鍵通過(guò)雙引號(hào)包裹,后面跟冒號(hào)“:”,然后跟該鍵的值;
值可以是字符串、數(shù)字、數(shù)組等數(shù)據(jù)類(lèi)型;
對(duì)象與對(duì)象之間用逗號(hào)隔開(kāi);
“{}”用來(lái)表達(dá)對(duì)象;
“[]”用來(lái)表達(dá)數(shù)組;
Python中的Json模塊
Python中也自帶了Json模塊,其中json.dumps()、json.loads()較為常用。
json.dumps() 是將 python 對(duì)象轉(zhuǎn)化為 json。
json.loads() 是將 json 轉(zhuǎn)化為 python 對(duì)象。
運(yùn)行結(jié)果:
在例子中一開(kāi)始的變量 dict_data 是一個(gè)字典,json.dumps() 后,將dict格式數(shù)據(jù)轉(zhuǎn)換成json格式字符串。這時(shí)候雖然都是{'a': 1, 'b': 2},但是格式卻前后不一樣。隨后又通過(guò) json.loads(),重新將json格式字符串轉(zhuǎn)換成字典。
在線解析Json
在實(shí)際應(yīng)用中,要提取json數(shù)據(jù),就要了解返回json數(shù)據(jù)的結(jié)構(gòu)。
可是Json格式的數(shù)據(jù)往往是這樣的。
大家別擔(dān)心,我們可以將數(shù)據(jù)復(fù)制到一些json插件或在線解析!
比如這個(gè)插件是小五常用的:
此時(shí)再打開(kāi)剛才的網(wǎng)址
是不是清晰了很多呢?
如果用python來(lái)獲取里面的數(shù)據(jù)怎么做的?
先利用 json.loads() 來(lái)將 Json 轉(zhuǎn)成字典,再用 get() 函數(shù)直到得到我們想要的list 對(duì)象,那么對(duì)于 list 里面的數(shù)據(jù)我們用個(gè) for 循環(huán)就行啦~
額,有點(diǎn)繞。
還是文章一開(kāi)始的例子,我們想獲取其中所有狗狗的名字:
我們可以這樣做:
運(yùn)行結(jié)果:
這樣確實(shí)可以獲得我們想要的結(jié)果。
PS:類(lèi)似的在線解析網(wǎng)站也有很多,比如 https://www.json.cn。
JsonPath
不知道大家還記不記得,在一開(kāi)始介紹Json時(shí),我提到了它相對(duì)于XML來(lái)說(shuō),更加的輕量級(jí),更方便解析。
既然 XML 人家都有 XPATH ,那么Json有沒(méi)有類(lèi)似的工具呢?
JsonPath 是一種信息抽取類(lèi)庫(kù),是從Json文檔中抽取指定信息的工具。
JsonPath 對(duì)于 Json 來(lái)說(shuō),相當(dāng)于 XPATH 對(duì)于 XML。
Json結(jié)構(gòu)清晰,可讀性高,復(fù)雜度低,非常容易匹配,下表是JsonPath的用法。
沒(méi)錯(cuò),還是這個(gè)例子,我們這次嘗試用JsonPath獲取其中所有狗狗的名字:
我們可以這樣做:
其中 $..name 代表從根節(jié)點(diǎn)開(kāi)始,匹配name節(jié)點(diǎn)
運(yùn)行結(jié)果:
利用 JsonPath 同樣可以獲得我們想要的結(jié)果。
我們?cè)诤罄m(xù)實(shí)例演練中將繼續(xù)采用 JsonPath 來(lái)抽取數(shù)據(jù)。
實(shí)例演練
示例:我們利用網(wǎng)易云音樂(lè)評(píng)論API來(lái)生成Json數(shù)據(jù),并從中獲取熱評(píng)數(shù)據(jù)。
在瀏覽器(已安裝Json解析插件)中打開(kāi):
標(biāo)紅區(qū)域的數(shù)據(jù)是我們本次想要獲取的。
運(yùn)行結(jié)果:
成功獲取√
到此,相信大家對(duì)“Python中Json數(shù)據(jù)的特點(diǎn)和實(shí)例用法”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)頁(yè)題目:Python中Json數(shù)據(jù)的特點(diǎn)和實(shí)例用法
瀏覽地址:http://aaarwkj.com/article48/psosep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站、定制開(kāi)發(fā)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)