Python使用jsonpath_ng的方法
jsonpath_ng 是 Python 中一款解析和操作 JSON 數(shù)據(jù)的工具,它可以通過(guò) JSONPath 語(yǔ)法來(lái)對(duì) JSON 數(shù)據(jù)進(jìn)行定位和提取,其用法類(lèi)似于 XPath 語(yǔ)法對(duì) XML 數(shù)據(jù)進(jìn)行定位。
安裝
在使用 jsonpath_ng 之前,需要先安裝該庫(kù)??梢酝ㄟ^(guò) pip 命令進(jìn)行安裝,如下所示:
pip install jsonpath_ng
使用
取 dict 中的數(shù)據(jù)
假設(shè)有如下 JSON 數(shù)據(jù):
{
"code": 1,
"result": {
"msg": "success"
}
}獲取 msg 字段的信息。可以通過(guò)如下代碼來(lái)實(shí)現(xiàn):
from jsonpath_ng import parse
data = {"code": 1, "result": {"msg": "success"}}
msg_path = parse("$.result.msg")
# 獲取 msg 的信息
msg_path.find(data)[0].value # success在上面的代碼中,我們首先導(dǎo)入了 jsonpath_ng 庫(kù),并將 JSON 數(shù)據(jù)轉(zhuǎn)換為 Python 中的 dict 類(lèi)型。接著,我們使用 parse 函數(shù)來(lái)解析 JSONPath 表達(dá)式 $.result.msg,并將其賦值給變量 msg_path。最后,我們通過(guò)調(diào)用 find 方法并傳入 JSON 數(shù)據(jù),來(lái)獲取 msg 的值。
取 list 中的數(shù)據(jù)
假設(shè)有如下 JSON 數(shù)據(jù):
{
"code": 1,
"result": [
{"id": 1},
{"id": 2}
]
}獲取 id 字段的信息??梢酝ㄟ^(guò)如下代碼來(lái)實(shí)現(xiàn):
from jsonpath_ng import parse
data = {"code": 1, "result": [{"id": 1}, {"id": 2}]}
list_path = parse("$.result[*].id")
# 獲取 list 中 id 的信息
list_path.find(data)[0].value # 1
list_path.find(data)[1].value # 2在上面的代碼中,同樣使用 parse 函數(shù)來(lái)解析 JSONPath 表達(dá)式 $.result[*].id,并將其賦值給變量 list_path。通過(guò)調(diào)用 find 方法來(lái)獲取 id 的值。需要注意的是,由于 result 字段是一個(gè)列表,需要使用 [*] 來(lái)表示列表中的所有元素。
補(bǔ)充:
python json 庫(kù) jsonpath_ng
json path_ng 是 Python 中一款解析和操作 JSON 數(shù)據(jù)的工具,它可以通過(guò) JSONPath 語(yǔ)法來(lái)對(duì) JSON 數(shù)據(jù)進(jìn)行定位和提取,其用法類(lèi)似于 XPath 語(yǔ)法對(duì) XML 數(shù)據(jù)進(jìn)行定位。
安裝
在使用 jsonpath_ng 之前,需要先安裝該庫(kù)??梢酝ㄟ^(guò) pip 命令進(jìn)行安裝,如下所示:
pip install jsonpath_ng
使用
取 dict 中的數(shù)據(jù)
假設(shè)有如下 JSON 數(shù)據(jù):
{
"code": 1,
"result": {
"msg": "success"
}
}獲取 msg 字段的信息??梢酝ㄟ^(guò)如下代碼來(lái)實(shí)現(xiàn):
from jsonpath_ng import parse
data = {"code": 1, "result": {"msg": "success"}}
msg_path = parse("$.result.msg")
# 獲取 msg 的信息
msg_path.find(data)[0].value # success在上面的代碼中,我們首先導(dǎo)入了 jsonpath_ng 庫(kù),并將 JSON 數(shù)據(jù)轉(zhuǎn)換為 Python 中的 dict 類(lèi)型。接著,我們使用 parse 函數(shù)來(lái)解析 JSONPath 表達(dá)式 $.result.msg,并將其賦值給變量 msg_path。最后,我們通過(guò)調(diào)用 find 方法并傳入 JSON 數(shù)據(jù),來(lái)獲取 msg 的值。
取 list 中的數(shù)據(jù)
假設(shè)有如下 JSON 數(shù)據(jù):
{
"code": 1,
"result": [
{"id": 1},
{"id": 2}
]
}獲取 id 字段的信息??梢酝ㄟ^(guò)如下代碼來(lái)實(shí)現(xiàn):
from jsonpath_ng import parse
data = {"code": 1, "result": [{"id": 1}, {"id": 2}]}
list_path = parse("$.result[*].id")
# 獲取 list 中 id 的信息
list_path.find(data)[0].value # 1
list_path.find(data)[1].value # 2在上面的代碼中,同樣使用 parse 函數(shù)來(lái)解析 JSONPath 表達(dá)式 $.result[*].id,并將其賦值給變量 list_path。通過(guò)調(diào)用 find 方法來(lái)獲取 id 的值。需要注意的是,由于 result 字段是一個(gè)列表,需要使用 [*] 來(lái)表示列表中的所有元素。
到此這篇關(guān)于Python使用jsonpath_ng的方法的文章就介紹到這了,更多相關(guān)Python使用jsonpath_ng內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Handler處理器和自定義Opener原理詳解
這篇文章主要介紹了Python Handler處理器和自定義Opener原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Python基于tkinter canvas實(shí)現(xiàn)圖片裁剪功能
這篇文章主要介紹了Python基于tkinter canvas實(shí)現(xiàn)圖片裁剪功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
centos系統(tǒng)升級(jí)python 2.7.3
CentOS上安裝的python版本是2.6,不能滿(mǎn)足我運(yùn)行軟件的要求,所以對(duì)python進(jìn)行升級(jí)。Python的最新版本已經(jīng)是3.3,但是Python3的兼容性可能還有一定的問(wèn)題,所以還是升級(jí)到2.7較為保險(xiǎn)。2014-07-07
python搜索指定類(lèi)型文件以及批量移動(dòng)文件程序詳解
這篇文章主要給大家介紹了關(guān)于python搜索指定類(lèi)型文件以及批量移動(dòng)文件程序的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03
Python?代碼智能感知類(lèi)型標(biāo)注與特殊注釋詳解
這篇文章主要為大家介紹了Python?代碼智能感知類(lèi)型標(biāo)注與特殊注釋詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Python爬蟲(chóng)設(shè)置代理IP的方法(爬蟲(chóng)技巧)
這篇文章主要介紹了Python爬蟲(chóng)設(shè)置代理IP的方法(爬蟲(chóng)技巧),需要的朋友可以參考下2018-03-03

