python json有什么用_为什么要学习用Python解析JSON数据?
“JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數(shù)據(jù)交換格式。它基于 ECMAScript (歐洲計算機(jī)協(xié)會制定的js規(guī)范)的一個子集,采用完全獨(dú)立于編程語言的文本格式來存儲和表示數(shù)據(jù)。簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。”——《百度百科》
我們在爬取網(wǎng)站的時候,經(jīng)常會遇到獲取了html卻沒有在標(biāo)簽里找到數(shù)據(jù)的情況。這種情況大概率html只是一個框架,而數(shù)據(jù)是JavaScript腳本從服務(wù)器獲取JSON數(shù)據(jù)后再把數(shù)據(jù)寫入標(biāo)簽的。所以我們直接獲取html會找不到需要的數(shù)據(jù)。解決的方法也不難,使用瀏覽器的開發(fā)者模式可以看到網(wǎng)頁對服務(wù)器發(fā)出的請求,找到獲取數(shù)據(jù)的請求后模擬該請求即可從服務(wù)器獲取JSON數(shù)據(jù)。獲取JSON數(shù)據(jù)后即可用json庫轉(zhuǎn)化為python的數(shù)據(jù)類型。
JSON庫有4個常用的方法,下面來一一介紹給大家。
json.loads()
該方法是將JSON字符串轉(zhuǎn)化為python數(shù)據(jù)類型。
#導(dǎo)入json庫
import json
#定義JSON格式的字符串
json_str = '{"測試": 123}'
#使用loads()將JSON字符串轉(zhuǎn)化為python數(shù)據(jù)類型,將會返回{"測試": 123}
json.loads(json_str)
json.dumps()
該方法是將python數(shù)據(jù)類型轉(zhuǎn)化為JSON字符串。
#導(dǎo)入json庫
import json
#定義一個字典
dic = {"測試": 123}
#使用dumps()將python字典轉(zhuǎn)化為JSON字符串,將會返回'{"測試": 123}'
#ensure_ascii參數(shù)設(shè)置為False時允許有中文
json.dumps(dic, ensure_ascii=False)
json.load()
該方法是將文件中的JSON字符串轉(zhuǎn)化為python數(shù)據(jù)類型。
#導(dǎo)入json庫
import json
#定義JSON格式的字符串
json_str = '{"測試": 123}'
#將字符串寫入文件
with open(file, 'w', encoding='utf-8') as f:
f.write(json_str)
#使用load()從文件讀取JSON字符串轉(zhuǎn)化為python數(shù)據(jù)類型,將會返回一個字典
with open(file, 'r', encoding='utf-8') as f:
j = json.load(f)
json.dump()
該方法是將python數(shù)據(jù)類型轉(zhuǎn)化為JSON字符串后寫入文件。
#導(dǎo)入json庫
import json
#定義一個字典
dic = {"測試": 123}
#使用dump()將python數(shù)據(jù)類型轉(zhuǎn)化為JSON字符串后寫入文件,indent參數(shù)設(shè)置縮進(jìn)
with open(file, 'w', encoding='utf-8') as f:
json.dump(dic, f, ensure_ascii=False, indent=4)
獲取了字典后,可以逐層遍歷字典item去查看數(shù)據(jù)所在的位置和關(guān)聯(lián)的鍵,這樣就能用代碼把數(shù)據(jù)“揪”出來了。
總結(jié):
1.loads(),dumps()這兩個后面帶s的方法就是跟字符串有關(guān)的方法
2.創(chuàng)建JSON格式的字符串時只能用雙引號
3.有中文時需要設(shè)置ensure_ascii參數(shù)
4.indent參數(shù)能設(shè)置縮進(jìn)的空格
往期精彩回顧
往期精彩回顧無需要太多,只需要一張Python詞云圖?mp.weixin.qq.com如何寫出Pythonic的代碼??mp.weixin.qq.com裝飾一下你的Python函數(shù)吧~?mp.weixin.qq.com
今天也學(xué)到了很多東西呢,明天有什么新知識呢?真期待鴨~如果喜歡文章可以關(guān)注我哦~
總結(jié)
以上是生活随笔為你收集整理的python json有什么用_为什么要学习用Python解析JSON数据?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx启动不了_nginx 变量与监
- 下一篇: axure能做剪切蒙版吗_卫生间瓷砖不打