Python入門教程(二十八)Python中的JSON
JSON 是用于存儲(chǔ)和交換數(shù)據(jù)的語法。
JSON 是用 JavaScript 對(duì)象表示法(JavaScript object notation)編寫的文本。
Python 中的 JSON
Python 有一個(gè)名為 json 的內(nèi)置包,可用于處理 JSON 數(shù)據(jù)。
實(shí)例
導(dǎo)入 json 模塊:
import json
解析 JSON - 把 JSON 轉(zhuǎn)換為 Python
若有 JSON 字符串,則可以使用 json.loads() 方法對(duì)其進(jìn)行解析。
結(jié)果將是 Python 字典
實(shí)例
把 JSON 轉(zhuǎn)換為 Python:
import json # 一些 JSON: x = '{ "name":"Bill", "age":63, "city":"Seatle"}' # 解析 x: y = json.loads(x) # Python學(xué)習(xí)交流q群:708525271 # 結(jié)果是 Python 字典: print(y["age"])
運(yùn)行實(shí)例
把 Python 轉(zhuǎn)換為 JSON
若有 Python 對(duì)象,則可以使用 json.dumps() 方法將其轉(zhuǎn)換為 JSON 字符串。
實(shí)例
把 Python 轉(zhuǎn)換為 JSON:
import json # Python 對(duì)象(字典): x = { "name": "Bill", "age": 63, "city": "Seatle" } # 轉(zhuǎn)換為 JSON: y = json.dumps(x) # 結(jié)果是 JSON 字符串: print(y)
運(yùn)行實(shí)例
您可以把以下類型的 Python 對(duì)象轉(zhuǎn)換為 JSON 字符串:
- dict
- list
- tuple
- string
- int
- float
- True
- False
- None
實(shí)例
將 Python 對(duì)象轉(zhuǎn)換為 JSON 字符串,并打印值:
import json print(json.dumps({"name": "Bill", "age": 63})) print(json.dumps(["apple", "bananas"])) print(json.dumps(("apple", "bananas"))) print(json.dumps("hello")) print(json.dumps(42)) print(json.dumps(31.76)) print(json.dumps(True)) print(json.dumps(False)) print(json.dumps(None))
運(yùn)行實(shí)例
當(dāng) Python 轉(zhuǎn)換為 JSON 時(shí),Python 對(duì)象會(huì)被轉(zhuǎn)換為 JSON(JavaScript)等效項(xiàng):
實(shí)例
轉(zhuǎn)換包含所有合法數(shù)據(jù)類型的 Python 對(duì)象:
import json x = { "name": "Bill", "age": 63, "married": True, "divorced": False, "children": ("Jennifer","Rory","Phoebe"), "pets": None, "cars": [ {"model": "Porsche", "mpg": 38.2}, {"model": "BMW M5", "mpg": 26.9} ] } print(json.dumps(x))
運(yùn)行實(shí)例
格式化結(jié)果
上面的實(shí)例打印一個(gè) JSON 字符串,但它不是很容易閱讀,沒有縮進(jìn)和換行。
json.dumps() 方法提供了令結(jié)果更易讀的參數(shù):
實(shí)例
使用 indent 參數(shù)定義縮進(jìn)數(shù):
json.dumps(x, indent=4)
運(yùn)行實(shí)例
python_json_from_python_indent.py:
import json x = { "name": "Bill", "age": 63, "married": True, "divorced": False, "children": ("Jennifer","Rory","Phoebe"), "pets": None, "cars": [ {"model": "Porsche", "mpg": 38.2}, {"model": "BMW M5", "mpg": 26.9} ] } # use four indents to make it easier to read the result: print(json.dumps(x, indent=4))
您還可以定義分隔符,默認(rèn)值為(", ", ": "),這意味著使用逗號(hào)和空格分隔每個(gè)對(duì)象,使用冒號(hào)和空格將鍵與值分開:
實(shí)例
使用 separators 參數(shù)來更改默認(rèn)分隔符:
json.dumps(x, indent=4, separators=(". ", " = "))
運(yùn)行實(shí)例
import json x = { "name": "Bill", "age": 63, "married": True, "divorced": False, "children": ("Jennifer","Rory","Phoebe"), "pets": None, "cars": [ {"model": "Porsche", "mpg": 38.2}, {"model": "BMW M5", "mpg": 26.9} ] } # use . and a space to separate objects, and a space, a = and a space to separate keys from their values: print(json.dumps(x, indent=4, separators=(". ", " = ")))
對(duì)結(jié)果排序
json.dumps() 方法提供了對(duì)結(jié)果中的鍵進(jìn)行排序的參數(shù):
實(shí)例
使用 sort_keys 參數(shù)來指定是否應(yīng)對(duì)結(jié)果進(jìn)行排序:
json.dumps(x, indent=4, sort_keys=True)
運(yùn)行實(shí)例
import json x = { "name": "Bill", "age": 63, "married": True, "divorced": False, "children": ("Jennifer","Rory","Phoebe"), "pets": None, "cars": [ {"model": "Porsche", "mpg": 38.2}, {"model": "BMW M5", "mpg": 26.9} ] } # sort the result alphabetically by keys: print(json.dumps(x, indent=4, sort_keys=True))
到此這篇關(guān)于Python入門教程(二十八)Python中的JSON的文章就介紹到這了,更多相關(guān)Python中的JSON內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python制作數(shù)據(jù)導(dǎo)入導(dǎo)出工具
正好最近在學(xué)習(xí)python,于是打算用python實(shí)現(xiàn)了數(shù)據(jù)導(dǎo)入導(dǎo)出工具,由于是新手,所以寫的有些不完善的地方還請(qǐng)見諒2015-07-07Python 多進(jìn)程原理及實(shí)現(xiàn)
這篇文章主要介紹了Python 多進(jìn)程原理及實(shí)現(xiàn),幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12Python利用GDAL模塊實(shí)現(xiàn)讀取柵格數(shù)據(jù)并對(duì)指定數(shù)據(jù)加以篩選掩膜
這篇文章主要為大家詳細(xì)介紹了如何基于Python語言中g(shù)dal模塊,對(duì)遙感影像數(shù)據(jù)進(jìn)行柵格讀取與計(jì)算,同時(shí)基于QA波段對(duì)像元加以篩選、掩膜的操作,需要的可以參考一下2023-02-02Python實(shí)現(xiàn)自動(dòng)玩連連看的腳本分享
最近女朋友在玩連連看,玩了一個(gè)星期了還沒通關(guān),真的是菜。實(shí)在是看不過去了,直接用python寫了個(gè)腳本代碼可以自動(dòng)玩連連看,感興趣的可以了解一下2022-04-04Python實(shí)現(xiàn)http服務(wù)器(http.server模塊傳參?接收參數(shù))實(shí)例
這篇文章主要為大家介紹了Python實(shí)現(xiàn)http服務(wù)器(http.server模塊傳參?接收參數(shù))實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Pandas 合并多個(gè)Dataframe(merge,concat)的方法
今天小編就為大家分享一篇Pandas 合并多個(gè)Dataframe(merge,concat)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06