使用Python解析JSON的實(shí)現(xiàn)示例
JSON (JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。Python3 中可以使用 json 模塊來對 JSON 數(shù)據(jù)進(jìn)行編解碼,主要包含了下面4個操作函數(shù):

提示:所謂類文件對象指那些具有read()或者 write()方法的對象,例如,f = open('a.txt','r'),其中的f有read()方法,所以f就是類文件對象。?
在json的編解碼過程中,python 的原始類型與JSON類型會相互轉(zhuǎn)換,具體的轉(zhuǎn)化對照如下:
Python 編碼為 JSON 類型轉(zhuǎn)換對應(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)換對應(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 對象
json_str = json.dumps(data)
print(json_str) # 結(jié)果 {"name": "pengjunlee", "age": 32, "vip": true, "address": {"province": "GuangDong", "city": "ShenZhen"}}
# 將 JSON 對象類型轉(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)
# 將類文件對象中的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)簡單的字符串和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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Numpy中轉(zhuǎn)置transpose、T和swapaxes的實(shí)例講解
下面小編就為大家分享一篇Numpy中轉(zhuǎn)置transpose、T和swapaxes的實(shí)例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python圖像銳化與邊緣檢測之Sobel與Laplacian算子詳解
圖像銳化和邊緣檢測主要包括一階微分銳化和二階微分銳化,本文主要講解常見的圖像銳化和邊緣檢測方法,即Sobel算子和Laplacian算子,感興趣的可以了解一下2022-12-12
Python實(shí)現(xiàn)簡易的圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡易的圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
python程序中的線程操作 concurrent模塊使用詳解
這篇文章主要介紹了python程序中的線程操作 concurrent模塊使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09
Django--權(quán)限Permissions的例子
今天小編就為大家分享一篇Django--權(quán)限Permissions的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python 使用PyQt5 完成選擇文件或目錄的對話框方法
今天小編就為大家分享一篇Python 使用PyQt5 完成選擇文件或目錄的對話框方法。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06

