使用Python解析JSON的實(shí)現(xiàn)示例
JSON (JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。Python3 中可以使用 json 模塊來對(duì) JSON 數(shù)據(jù)進(jìn)行編解碼,主要包含了下面4個(gè)操作函數(shù):
提示:所謂類文件對(duì)象指那些具有read()或者 write()方法的對(duì)象,例如,f = open('a.txt','r'),其中的f有read()方法,所以f就是類文件對(duì)象。?
在json的編解碼過程中,python 的原始類型與JSON類型會(huì)相互轉(zhuǎn)換,具體的轉(zhuǎn)化對(duì)照如下:
Python 編碼為 JSON 類型轉(zhuǎn)換對(duì)應(yīng)表:
Python | JSON |
dict | object |
list, tuple | array |
str | string |
int, float, int- & float-derived Enums | number |
True | true |
False | false |
None | null |
JSON 解碼為 Python 類型轉(zhuǎn)換對(duì)應(yīng)表:
JSON | Python |
object | dict |
array | list |
string | str |
number (int) | int |
number (real) | float |
true | True |
false | False |
null | None |
操作示例?:
import json data = { 'name': 'pengjunlee', 'age': 32, 'vip': True, 'address': {'province': 'GuangDong', 'city': 'ShenZhen'} } # 將 Python 字典類型轉(zhuǎn)換為 JSON 對(duì)象 json_str = json.dumps(data) print(json_str) # 結(jié)果 {"name": "pengjunlee", "age": 32, "vip": true, "address": {"province": "GuangDong", "city": "ShenZhen"}} # 將 JSON 對(duì)象類型轉(zhuǎn)換為 Python 字典 user_dic = json.loads(json_str) print(user_dic['address']) # 結(jié)果 {'province': 'GuangDong', 'city': 'ShenZhen'} # 將 Python 字典直接輸出到文件 with open('pengjunlee.json', 'w', encoding='utf-8') as f: json.dump(user_dic, f, ensure_ascii=False, indent=4) # 將類文件對(duì)象中的JSON字符串直接轉(zhuǎn)換成 Python 字典 with open('pengjunlee.json', 'r', encoding='utf-8') as f: ret_dic = json.load(f) print(type(ret_dic)) # 結(jié)果 <class 'dict'> print(ret_dic['name']) # 結(jié)果 pengjunlee
注意:使用eval()能夠?qū)崿F(xiàn)簡(jiǎn)單的字符串和Python類型的轉(zhuǎn)化。?
user1 = eval('{"name":"pengjunlee"}') print(user1['name']) # 結(jié)果 pengjunlee
到此這篇關(guān)于使用Python解析JSON的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Python解析JSON內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Numpy中轉(zhuǎn)置transpose、T和swapaxes的實(shí)例講解
下面小編就為大家分享一篇Numpy中轉(zhuǎn)置transpose、T和swapaxes的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python圖像銳化與邊緣檢測(cè)之Sobel與Laplacian算子詳解
圖像銳化和邊緣檢測(cè)主要包括一階微分銳化和二階微分銳化,本文主要講解常見的圖像銳化和邊緣檢測(cè)方法,即Sobel算子和Laplacian算子,感興趣的可以了解一下2022-12-12Python實(shí)現(xiàn)簡(jiǎn)易的圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)易的圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03python程序中的線程操作 concurrent模塊使用詳解
這篇文章主要介紹了python程序中的線程操作 concurrent模塊使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09Django--權(quán)限Permissions的例子
今天小編就為大家分享一篇Django--權(quán)限Permissions的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python 使用PyQt5 完成選擇文件或目錄的對(duì)話框方法
今天小編就為大家分享一篇Python 使用PyQt5 完成選擇文件或目錄的對(duì)話框方法。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06