jsonpath介紹與使用


一、什么是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

{ "store": { "book": [ { "category": "文學作品", "author": "錢鍾書", "title": "圍城", "price": 80.5 }, { "category": "歷史作品", "author": "孔子", "title": "春秋", "price": 90.9 }, { "category": "天文作品", "author": "天文", "title": "史上最強仙人", "isbn": "0-553-21311-3", "price": 80.9 }, { "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 } } }

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM