jsonpath介紹與使用

2022-06-01 04:33:08 字數 2674 閱讀 5162

一、什麼是jsonpath

用來解析json資料的所使用的。

二、拓展

1、python 處理json格式所使用的函式

(1)json.dumps()  

將字典或者列表轉換為json格式的字串。

(2)json.loads()

將json格式字串轉換為python物件。

(3)json.dump()

將字典或者列表轉換為json格式的字串並且寫入到檔案中。

(4)json.load()

從檔案中讀取json格式的字串並且轉換為python物件。

(5)例項

2、前端處理json格式的資料

將json格式字串轉換為js物件,兩種方式:

(1)json.parse("json格式的字串")

(2)eval('(' + json格式字串 + ')')

三、jsonpath如何解析json資料

1、安裝jsonpath

pip3 install jsonpath

2、xpath與jsonpath對比

xpath

jsonpath

description/$

表示根元素.@

當前元素

/. or

子元素..

n/a父元素

//..

遞迴下降,jsonpath是從e4x借鑑的。**

萬用字元,表示所有的元素

@n/a

屬性訪問字元

子元素操作符

|[,]

連線操作符在xpath 結果合併其它結點集合。jsonp允許name或者陣列索引。

n/a[start:end:step]

陣列分割操作從es4借鑑。

?()應用過濾表示式

n/a()

指令碼表示式,使用在指令碼引擎下面。

()n/a

xpath分組

注:(1) 在xpath表示式總是從前面的路徑來運算元組,索引是從1開始。

(2) 使用josnpath的操作符操作乙個物件或者陣列,索引是從0開始。

3、jsonpath例項

jsonpath_exam.py

#!/usr/local/bin/python3.7

import

json

import

jsonpath

#從檔案中讀取json格式的字串並且轉換為python物件

obj = json.load(open('

reptile/books.json

', '

r', encoding='

utf-8'))

#獲取所有書的作者

authors = jsonpath.jsonpath(obj, '

$.store.book[*].author')

print

(authors)

#獲取所有的作者

authors = jsonpath.jsonpath(obj, '

$..author')

print

(authors)

#store的所有元素。所有的book和bicycle

store_elements = jsonpath.jsonpath(obj, '

$.store.*')

print

(store_elements)

#獲取store裡面的所有東西的price

prices = jsonpath.jsonpath(obj, '

$.store.*..price')

print

(prices)

#獲取第三本書

book3 = jsonpath.jsonpath(obj, '

$.store.book[2]')

print

(book3)

#獲取最後一本書

book_last = jsonpath.jsonpath(obj, '

$.store.book[(@.length-1)]')

print

(book_last)

#獲取前面的兩本書

book_1_2 = jsonpath.jsonpath(obj, '

$..book[0,1]')

print

(book_1_2)

#過濾出所有的包含isbn的書。

isbn = jsonpath.jsonpath(obj, '

$..book[?(@.isbn)]')

print

(isbn)

#過濾出**低於10的書。

under10 = jsonpath.jsonpath(obj, '

$..book[?(@.price<30)]')

print

(under10)

#找出所有元素

all = jsonpath.jsonpath(obj, '

$.*'

)print(all)

books.json

, ,,],

"bicycle":

}}

JsonPath使用教程

json提取器說明 names of created variables 接收值的變數名,自定義,多個變數用分號分隔 json path expression json path表示式,也是用分號分隔 match no.0 for random 0表示隨機 n取第幾個匹配值 1匹配所有。若只要獲取到...

JSONPath 表示式的使用

一 jsonpath使用需要的包 com.jayway.jsonpath json path 2.4.0 二 使用說明 1 jsonpath是xpath在json的應用 2 jsonpath 是參照xpath表示式來解析xml文件的方式,json資料結構通常是匿名的並且不一定需要有根元素。3 jso...

使用jsonpath讀取json資料的誤區

使用jsonpath.jsonpath 讀取json資料,出現錯誤,json格式中鍵是帶字尾檔名,型別為string 實際查詢結果為false import jsonpath follow relationship data followrelationship2.txt keyword follo...