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-03Python基于tkinter canvas實(shí)現(xiàn)圖片裁剪功能
這篇文章主要介紹了Python基于tkinter canvas實(shí)現(xiàn)圖片裁剪功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11centos系統(tǒng)升級(jí)python 2.7.3
CentOS上安裝的python版本是2.6,不能滿足我運(yùn)行軟件的要求,所以對(duì)python進(jìn)行升級(jí)。Python的最新版本已經(jīng)是3.3,但是Python3的兼容性可能還有一定的問(wèn)題,所以還是升級(jí)到2.7較為保險(xiǎn)。2014-07-07python搜索指定類(lèi)型文件以及批量移動(dòng)文件程序詳解
這篇文章主要給大家介紹了關(guān)于python搜索指定類(lèi)型文件以及批量移動(dòng)文件程序的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03Python?代碼智能感知類(lèi)型標(biāo)注與特殊注釋詳解
這篇文章主要為大家介紹了Python?代碼智能感知類(lèi)型標(biāo)注與特殊注釋詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Python爬蟲(chóng)設(shè)置代理IP的方法(爬蟲(chóng)技巧)
這篇文章主要介紹了Python爬蟲(chóng)設(shè)置代理IP的方法(爬蟲(chóng)技巧),需要的朋友可以參考下2018-03-03