欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用jsonpath_ng的方法

 更新時(shí)間:2023年12月26日 11:00:42   作者:時(shí)光不寫(xiě)代碼  
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)行定位,這篇文章主要介紹了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原理詳解

    這篇文章主要介紹了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)圖片裁剪功能

    這篇文章主要介紹了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系統(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-07
  • 詳解在Python中處理異常的教程

    詳解在Python中處理異常的教程

    這篇文章主要介紹了詳解在Python中處理異常的教程,是Python入門(mén)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • python搜索指定類(lèi)型文件以及批量移動(dòng)文件程序詳解

    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雙鏈表原理與實(shí)現(xiàn)方法詳解

    Python雙鏈表原理與實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Python雙鏈表原理與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了Python雙鏈表的概念、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • python 多線程共享全局變量的優(yōu)劣

    python 多線程共享全局變量的優(yōu)劣

    這篇文章主要介紹了python 多線程共享全局變量的優(yōu)劣,幫助大家更好的理解和學(xué)習(xí)python多線程,感興趣的朋友可以了解下
    2020-09-09
  • Python?代碼智能感知類(lèi)型標(biāo)注與特殊注釋詳解

    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)技巧)

    這篇文章主要介紹了Python爬蟲(chóng)設(shè)置代理IP的方法(爬蟲(chóng)技巧),需要的朋友可以參考下
    2018-03-03
  • python串口讀取數(shù)據(jù)的實(shí)例

    python串口讀取數(shù)據(jù)的實(shí)例

    這篇文章主要介紹了python串口讀取數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評(píng)論