我的心裏只有Python和JSON,以及佩恩!

之所以要掌握JSON數據的處理方式,是因為在WEB開發和爬蟲以及一些數據分析任務中,很多數據都是以JSON格式出現。
JSON全稱JavaScript Object Notation,雖然名字中有JavaScript,但卻與其沒有什麼關係,是一種完全獨立於編程語言的數據格式。通俗地講,JSON就是一種遊走在各大編程語言之間的數據格式,我Python可以處理,你JAVA也可以處理,其它編程語言也可以處理。
JSON數據本質上是一堆字符串,屬於字符串類型,所以無論你眼前的JSON數據有多麼花里胡哨,它歸根結底也只是字符串類型。
json.loads()與json.load()
雖然JSON數據是字符串類型,但我們並不會直接用str類型的方法去處理它,而是先使用json.loads()或json.load()方法將其轉換成字典或者列表,然後再用字典或列表的方法去處理。
- json.loads()
json.loads()方法是將符合JSON長相的str類型數據轉換成字典或列表。
下面是轉成字典的結果:

下面是轉成列表的結果:

其實無論轉成字典還是列表,其內核都是字典,也就說即便轉成列表,列表中的每個元素也都是字典。在得到字典或列表後,我們就可以使用字典或列表的方法進行處理。
- json.load()
json.load()方法是將JSON文件轉換成字典或列表。
比如有一段存放在json文件中的數據,使用notepad++打開,如下:

這裡用json.load()方法讀取json文件,同時將其轉成列表,如下:

json.dumps()與json.dump()
其實我一開始不怎麼用到這個功能,直到後來我做WEB開發,需要向前端傳送JSON數據,這時候就需要將字典或列錶轉成JSON數據格式,可使用json.dumps()或json.dump()方法。另外還需要注意的是,如果數據中有中文,需設置參數ensure_ascii=Flase。
- json.dumps()
json.dumps()方法將具有JSON長相的字典或列表數據轉成str類型。
下面是字典轉成JSON:

下面是列錶轉成JSON:

這裡我多一句嘴,因為轉成了JSON格式,故上面兩個結果自然都是str類型,但很多人會誤看成字典和列表,這是因為pycham在打印str類型時,會默認將str類型的引號省略。
如何讓生成的JSON看上去更清爽?很多人印象中的JSON數據中的鍵值對是一行一行的,這可以通過設置indent參數,該參數值表示每個鍵值對在每一行開頭有幾個縮進,如下:

- json.dump()
json.dump()方法將具有JSON長相的字典或列表數據轉成JSON文件。

然後我用notepad++打開所生成的json文件,如下:

關注微信公眾號「Python小鎮」,發現更多乾貨知識!
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/209388.html
微信掃一掃
支付寶掃一掃