日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

python的jsonpath_python 提取json数据的jsonPath介绍及简单使用

發(fā)布時(shí)間:2024/8/5 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的jsonpath_python 提取json数据的jsonPath介绍及简单使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

為什么要用jsonpath

就跟為什么要用xpath一樣,jsonpath的設(shè)計(jì)靈感來源于xpath。一個(gè)強(qiáng)大的json數(shù)據(jù)提取工具。讓用戶不用編寫腳本就可以提取到相應(yīng)的json數(shù)據(jù)。

jsonpath的語法

jsonpath可以什么這兩種模式來檢索數(shù)據(jù):

以點(diǎn)為分隔

$.store.book[0].title

$.store.book[0,1] #可以取到第一個(gè)和第二個(gè)book值

$.store.book[*].title #可以取到所的的book值

以中括號(hào)為分隔

$['store']['book'][0]['title']

對(duì)于輸入.路徑,內(nèi)中路徑將始終使用更通用的中括號(hào)模式。 (我猜是因?yàn)閖sonpath在python中是dict,訪問方式剛好是用中括號(hào))

還支持[start:end:step]模式

"$.store.book[0:3:2].title" #和python中的range步長(zhǎng)計(jì)算是一致的

@符號(hào)表達(dá)式:即可以用來代表長(zhǎng)度,也可以用來代表name。

$.store.book[(@.length-1)].title #取到最后一個(gè)book的title

$.store.book[?(@.price < 10)].title #取到價(jià)格小于10的書的title

jsonpath的xpath的語法比較:

XPath

JSONPath

描述

/

$

根節(jié)點(diǎn)

.

@

現(xiàn)行節(jié)點(diǎn)

/

.or[]

取子節(jié)點(diǎn)

..

n/a

取父節(jié)點(diǎn),Jsonpath未支持

//

..

就是不管位置,選擇所有符合條件的條件

*

*

匹配所有元素節(jié)點(diǎn)

@

n/a

根據(jù)屬性訪問,Json不支持,因?yàn)镴son是個(gè)Key-value遞歸結(jié)構(gòu),不需要屬性訪問。

[]

[]

迭代器標(biāo)示(可以在里邊做簡(jiǎn)單的迭代操作,如數(shù)組下標(biāo),根據(jù)內(nèi)容選值等)

|

[,]

支持迭代器中做多選。

[]

?()

支持過濾操作.

n/a

()

支持表達(dá)式計(jì)算

()

n/a

分組,JsonPath不支持

jsonPath的使用示例

----------------

from jsonpath import jsonpath

data = {...} #這個(gè)數(shù)據(jù)是下面的example data

print(jsonpath(data, "$.store.book[0:3:2].title")) #按步長(zhǎng)取,到第1個(gè)和第3本書的titile

print(jsonpath(data, "$.store.book[0:2:2].title")) #按步長(zhǎng)取到第1本書的titile

print(jsonpath(data, "$.store.book[?(@.price < 10)].title")) #取價(jià)格小于10的書的title

print(jsonpath(data, "$..store.book[(@.length -1)].title")) #取最后一本書的title

----------------

example data:

----------------

{ "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ], "bicycle": { "color": "red", "price": 19.95 } } }

----------------

參考

jsonPath官方文檔

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的python的jsonpath_python 提取json数据的jsonPath介绍及简单使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。