官方文檔:https://goessner.net/articles/JsonPath/
參考文章:https://www.cnblogs.com/alamZ/p/7413968.html
參考文章:https://www.cnblogs.com/denise1108/p/10265911.html
JsonPath
1. jsonpath介紹
用來解析多層嵌套的json數據;JsonPath 是一種信息抽取類庫,是從JSON文檔中抽取指定信息的工具,提供多種語言實現版本,包括:Javascript, Python, PHP 和 Java。
使用方法如:
import jsonpath
res=jsonpath.jsonpath(dic_name,'$..key_name')
#嵌套n層也能取到所有key_name信息,其中:“$”表示最外層的{},“..”表示模糊匹配,當傳入不存在的key_name時,程序會返回false
JsonPath與XPath語法對比:
Json結構清晰,可讀性高,復雜度低,非常容易匹配,下表中對應了XPath的用法。
| XPath | JSONPath | 描述 |
|---|---|---|
/ |
$ |
根節點 |
. |
@ |
現行節點 |
/ |
.or[] |
取子節點 |
.. |
n/a | 取父節點,Jsonpath未支持 |
// |
.. |
就是不管位置,選擇所有符合條件的條件 |
* |
* |
匹配所有元素節點 |
@ |
n/a | 根據屬性訪問,Json不支持,因為Json是個Key-value遞歸結構,不需要。 |
[] |
[] |
迭代器標示(可以在里邊做簡單的迭代操作,如數組下標,根據內容選值等) |
| | | [,] |
支持迭代器中做多選。 |
[] |
?() |
支持過濾操作. |
| n/a | () |
支持表達式計算 |
() |
n/a | 分組,JsonPath不支持 |
