溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用Python解析JSON

發(fā)布時間:2021-12-30 13:34:31 來源:億速云 閱讀:123 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“怎么使用Python解析JSON”,在日常操作中,相信很多人在怎么使用Python解析JSON問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用Python解析JSON”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

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

怎么使用Python解析JSON

提示:所謂類文件對象指那些具有read()或者 write()方法的對象,例如,f = open('a.txt','r'),其中的f有read()方法,所以f就是類文件對象。 

在json的編解碼過程中,python 的原始類型與JSON類型會相互轉(zhuǎn)換,具體的轉(zhuǎn)化對照如下:

Python 編碼為 JSON 類型轉(zhuǎn)換對應(yīng)表:

PythonJSON
dictobject
list, tuplearray
strstring
int, float, int- & float-derived Enumsnumber
Truetrue
Falsefalse
Nonenull

JSON 解碼為 Python 類型轉(zhuǎn)換對應(yīng)表:

JSONPython
objectdict
arraylist
stringstr
number (int)int
number (real)float
trueTrue
falseFalse
nullNone

操作示例 :

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”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI