爲什麼要學習用Python解析JSON數據?


“JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。它基於 ECMAScript (歐洲計算機協會制定的js規範)的一個子集,採用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成爲理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網絡傳輸效率。”——《百度百科》


們在爬取網站時候,經常會遇到獲取了html卻沒有在標籤裏找到數據的情況。這種情況大概率html只是一個框架而數據JavaScript腳本從服務器獲取JSON數據後再把數據寫入標籤所以我們直接獲取html會找不到需要的數據解決的方法也不難,使用瀏覽器的開發者模式可以看到網頁對服務器發出的請求,找到獲取數據的請求後模擬該請求即可從服務器獲取JSON數據。獲取JSON數據後即可用json庫轉化爲python的數據類型。下面是JSON和python數據類型的對照表。

Python
JSON
dict
object
list,tuple
array
str,unicode
string
int,float number
True true
False
false
None
null


JSON庫有4個常用的方法,下面來一一介紹給大家。
json.loads()該方法是將JSON字符串轉化爲python數據類型。

#導入json庫import json
#定義JSON格式的字符串json_str = '{"測試"123}'
#使用loads()將JSON字符串轉化爲python數據類型,將會返回{"測試": 123}json.loads(json_str)

json.dumps() 該方法是將python數據類型轉化爲JSON字符串。
#導入json庫import json
#定義一個字典dic = {"測試"123}
#使用dumps()將python字典轉化爲JSON字符串,將會返回'{"測試"123}'#ensure_ascii參數設置爲False時允許有中文json.dumps(dic, ensure_ascii=False)

json.load() 該方法是將文件中的JSON字符串轉化爲python數據類型
#導入json庫import json
#定義JSON格式的字符串json_str = '{"測試"123}'
#將字符串寫入文件with open(file, 'w', encoding='utf-8') as f:    f.write(json_str) #使用load()從文件讀取JSON字符串轉化爲python數據類型,將會返回一個字典with open(file, 'r', encoding='utf-8') as f:    j = json.load(f)

json.dump() 該方法是將python數據類型轉化爲JSON字符串後寫入文件。
#導入json庫import json
#定義一個字典dic = {"測試": 123}
#使用dump()將python數據類型轉化爲JSON字符串後寫入文件,indent參數設置縮進with open(file, 'w', encoding='utf-8') as f:    json.dump(dic, f, ensure_ascii=False, indent=4)

獲取了字典後,可以逐層遍歷字典item去查看數據所在的位置和關聯的鍵,這樣就能用代碼把數據“揪”出來了。
總結: 1.loads(),dumps()這兩個後面帶s的方法就是跟字符串有關的方法 2.創建JSON格式的字符串時只能用雙引號 3.有中文時需要設置ensure_ascii參數
4.indent參數能設置縮進的空格






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章