您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Python中jsonpath解析庫的原理是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
jsonpath
jsonpath 用于多層嵌套 json格式的 解析。
pip install jsonpath
JsonPath | 描述 |
---|---|
$ | 根節點 |
@ | 現行節點 |
.or[] | 取子節點 |
n/a | 取父節點,jsonpath為支持 |
.. | 就是不管位置,選擇所有復合條件的條件 |
* | 匹配所有元素節點 |
n/a | 根據屬性訪問,json不支持,因為json是個key-value遞歸結構,不需要數屬性訪問 |
[] | 迭代器標示(可以在里邊做簡單的迭代操作,如數組下標,根據內容選值等) |
[,] | 支持迭代器中做多選 |
?() | 支持過濾操作 |
() | 支持表達式計算 |
n/a | 分組,JsonPath不支持 |
jsonpath使用示例
book_dict = { "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 | Result |
---|---|
$.store.book[*].author | store中的所有的book作者 |
$…author | 所有的作者 |
$.store.* | store下的所有元素 |
$.store…price | store中的所有價錢 |
$…book[2] | 第三本書 |
$…book[(@.length-1)] | 最后一本書 |
$…book[0,1] | 取前兩本書 |
$…book[?(@.isbn)] | 獲取有jsbn的所有數 |
$…book[?(@.price<10)] | 獲取價格大于10 |
$…* | 匹配所有數據 |
使用示例
$ 是查找的根節點,傳參數是python的dict 類型,當查找到的時候返回一個list結果,查找失敗的時候返回 False.
import jsonpath result = { "code": 0, "data": [ { "age": 20, "create_time": "2019-09-15", "id": 1, "mail": "283340479@qq.com", "name": "yoyo", "sex": "M" }, { "age": 21, "create_time": "2019-09-16", "id": 2, "mail": "123445@qq.com", "name": "yoyo111", "sex": "M" } ], "msg": "success!" } msg = jsonpath.jsonpath(result, '$.msg') print(msg) # 輸出結果 ['success!'] names = jsonpath.jsonpath(result, '$..name') print(names) # 輸出結果 ['yoyo', 'yoyo111'] no = jsonpath.jsonpath(result, '$..yoyo') print(no) # 找不到是結果是 False
關于Python中jsonpath解析庫的原理是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。