Python使用jsonpath_ng的方法
jsonpath_ng 是 Python 中一款解析和操作 JSON 數(shù)據(jù)的工具,它可以通過 JSONPath 語法來對 JSON 數(shù)據(jù)進(jìn)行定位和提取,其用法類似于 XPath 語法對 XML 數(shù)據(jù)進(jìn)行定位。
安裝
在使用 jsonpath_ng 之前,需要先安裝該庫。可以通過 pip 命令進(jìn)行安裝,如下所示:
pip install jsonpath_ng
使用
取 dict 中的數(shù)據(jù)
假設(shè)有如下 JSON 數(shù)據(jù):
{
"code": 1,
"result": {
"msg": "success"
}
}獲取 msg 字段的信息。可以通過如下代碼來實(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 庫,并將 JSON 數(shù)據(jù)轉(zhuǎn)換為 Python 中的 dict 類型。接著,我們使用 parse 函數(shù)來解析 JSONPath 表達(dá)式 $.result.msg,并將其賦值給變量 msg_path。最后,我們通過調(diào)用 find 方法并傳入 JSON 數(shù)據(jù),來獲取 msg 的值。
取 list 中的數(shù)據(jù)
假設(shè)有如下 JSON 數(shù)據(jù):
{
"code": 1,
"result": [
{"id": 1},
{"id": 2}
]
}獲取 id 字段的信息??梢酝ㄟ^如下代碼來實(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ù)來解析 JSONPath 表達(dá)式 $.result[*].id,并將其賦值給變量 list_path。通過調(diào)用 find 方法來獲取 id 的值。需要注意的是,由于 result 字段是一個(gè)列表,需要使用 [*] 來表示列表中的所有元素。
補(bǔ)充:
python json 庫 jsonpath_ng
json path_ng 是 Python 中一款解析和操作 JSON 數(shù)據(jù)的工具,它可以通過 JSONPath 語法來對 JSON 數(shù)據(jù)進(jìn)行定位和提取,其用法類似于 XPath 語法對 XML 數(shù)據(jù)進(jìn)行定位。
安裝
在使用 jsonpath_ng 之前,需要先安裝該庫??梢酝ㄟ^ pip 命令進(jìn)行安裝,如下所示:
pip install jsonpath_ng
使用
取 dict 中的數(shù)據(jù)
假設(shè)有如下 JSON 數(shù)據(jù):
{
"code": 1,
"result": {
"msg": "success"
}
}獲取 msg 字段的信息??梢酝ㄟ^如下代碼來實(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 庫,并將 JSON 數(shù)據(jù)轉(zhuǎn)換為 Python 中的 dict 類型。接著,我們使用 parse 函數(shù)來解析 JSONPath 表達(dá)式 $.result.msg,并將其賦值給變量 msg_path。最后,我們通過調(diào)用 find 方法并傳入 JSON 數(shù)據(jù),來獲取 msg 的值。
取 list 中的數(shù)據(jù)
假設(shè)有如下 JSON 數(shù)據(jù):
{
"code": 1,
"result": [
{"id": 1},
{"id": 2}
]
}獲取 id 字段的信息??梢酝ㄟ^如下代碼來實(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ù)來解析 JSONPath 表達(dá)式 $.result[*].id,并將其賦值給變量 list_path。通過調(diào)用 find 方法來獲取 id 的值。需要注意的是,由于 result 字段是一個(gè)列表,需要使用 [*] 來表示列表中的所有元素。
到此這篇關(guān)于Python使用jsonpath_ng的方法的文章就介紹到這了,更多相關(guān)Python使用jsonpath_ng內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Handler處理器和自定義Opener原理詳解
這篇文章主要介紹了Python Handler處理器和自定義Opener原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Python基于tkinter canvas實(shí)現(xiàn)圖片裁剪功能
這篇文章主要介紹了Python基于tkinter canvas實(shí)現(xiàn)圖片裁剪功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
python搜索指定類型文件以及批量移動(dòng)文件程序詳解
這篇文章主要給大家介紹了關(guān)于python搜索指定類型文件以及批量移動(dòng)文件程序的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03
Python?代碼智能感知類型標(biāo)注與特殊注釋詳解
這篇文章主要為大家介紹了Python?代碼智能感知類型標(biāo)注與特殊注釋詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09

