本篇內容主要講解“Python中Json數據的特點和實例用法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python中Json數據的特點和實例用法”吧!
Json簡介
Json(JavaScript Object Notation)
很多網站都會用到Json格式來進行數據的傳輸和交換,就像上篇我提到的網易云音樂接口,它們返回的數據都是Json格式的。
這因為Json是一種輕量級的數據交換格式,具有數據格式簡單,讀寫方便易懂等很多優點。用它來進行前后端的數據傳輸,大大的簡化了服務器和客戶端的開發工作量。
而且相對于XML來說,更加的輕量級,更方便解析。
今天我們講講如何在python里玩轉Json數據?
在Json中,遵循“key-value”的這樣一種方式。
比如最簡單的這種:“{"name" : "zhuxiao5"}”,跟python 里的字典似的,也是一個Json格式的數據。
復雜一點的比如這種(后文會多次使用到這個例子):
以上圖為例,再多說幾句Json格式的特點
對象通過鍵值對表現;
鍵通過雙引號包裹,后面跟冒號“:”,然后跟該鍵的值;
值可以是字符串、數字、數組等數據類型;
對象與對象之間用逗號隔開;
“{}”用來表達對象;
“[]”用來表達數組;
Python中的Json模塊
Python中也自帶了Json模塊,其中json.dumps()、json.loads()較為常用。
json.dumps() 是將 python 對象轉化為 json。
json.loads() 是將 json 轉化為 python 對象。
運行結果:
在例子中一開始的變量 dict_data 是一個字典,json.dumps() 后,將dict格式數據轉換成json格式字符串。這時候雖然都是{'a': 1, 'b': 2},但是格式卻前后不一樣。隨后又通過 json.loads(),重新將json格式字符串轉換成字典。
在線解析Json
在實際應用中,要提取json數據,就要了解返回json數據的結構。
可是Json格式的數據往往是這樣的。
大家別擔心,我們可以將數據復制到一些json插件或在線解析!
比如這個插件是小五常用的:
此時再打開剛才的網址
是不是清晰了很多呢?
如果用python來獲取里面的數據怎么做的?
先利用 json.loads() 來將 Json 轉成字典,再用 get() 函數直到得到我們想要的list 對象,那么對于 list 里面的數據我們用個 for 循環就行啦~
額,有點繞。
還是文章一開始的例子,我們想獲取其中所有狗狗的名字:
我們可以這樣做:
運行結果:
這樣確實可以獲得我們想要的結果。
PS:類似的在線解析網站也有很多,比如 https://www.json.cn。
JsonPath
不知道大家還記不記得,在一開始介紹Json時,我提到了它相對于XML來說,更加的輕量級,更方便解析。
既然 XML 人家都有 XPATH ,那么Json有沒有類似的工具呢?
JsonPath 是一種信息抽取類庫,是從Json文檔中抽取指定信息的工具。
JsonPath 對于 Json 來說,相當于 XPATH 對于 XML。
Json結構清晰,可讀性高,復雜度低,非常容易匹配,下表是JsonPath的用法。
沒錯,還是這個例子,我們這次嘗試用JsonPath獲取其中所有狗狗的名字:
我們可以這樣做:
其中 $..name 代表從根節點開始,匹配name節點
運行結果:
利用 JsonPath 同樣可以獲得我們想要的結果。
我們在后續實例演練中將繼續采用 JsonPath 來抽取數據。
實例演練
示例:我們利用網易云音樂評論API來生成Json數據,并從中獲取熱評數據。
在瀏覽器(已安裝Json解析插件)中打開:
標紅區域的數據是我們本次想要獲取的。
運行結果:
成功獲取√
到此,相信大家對“Python中Json數據的特點和實例用法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。