python中json用法?pip install jsonpath
下面表格是jsonpath語法與Xpath的完整概述和比較,我來為大家科普一下關于python中json用法?下面希望有你要的答案,我們一起來看看吧!
pip install jsonpath
下面表格是jsonpath語法與Xpath的完整概述和比較。
Xpath |
jsonpath |
概述 |
/ |
$ |
根節點 |
. |
@ |
當前節點 |
/ |
.or[] |
取子節點 |
* |
* |
匹配所有節點 |
[] |
[] |
叠代器标識(如數組下标,根據内容選值) |
// |
… |
不管在任何位置,選取符合條件的節點 |
n/a |
[,] |
支持叠代器中多選 |
n/a |
?() |
支持過濾操作 |
n/a |
() |
支持表達式計算 |
下面我們就通過幾個示例來學習jsonxpath的使用方法。
我們先來看下面這段json數據:
{ "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
}
}
}
假如我需要獲取到作者的名稱該怎麼樣寫呢?
如果通過Python的字典方法來獲取是非常麻煩的,所以在這裡我們可以選擇使用jsonpath.。
具體代碼示例如下所示:
import jsonpath
author = jsonpath.jsonpath(data_json, '$.store.book[*].author')
print(author)
運行上面的代碼你會發現,成功地獲取到了所有的作者名稱,并保存在列表中。
或者還可以這樣寫:
import jsonpath
author = jsonpath.jsonpath(data_json, '$..author')
print(author)
還是使用上面的json數據,假如我現在需要獲取第三本書的價格。
third_book_price = jsonpath.jsonpath(data_json, '$.store.book[2].price')
print(third_book_price)
運行上面的代碼,你會發現成功地獲取到了第三本書的價格。
5. 使用過濾器
isbn_book = jsonpath.jsonpath(data_json, '$..book[?(@.isbn)]')
print(isbn_book)
print(type(isbn_book))
通過運行上面的代碼,你會發現,成功地将含有isbn編号的書籍過濾出來了。
同樣的道理,根據上面的例子,我們也可以将價格小于10元的書過濾出來。
book = jsonpath.jsonpath(data_json, '$..book[?(@.price<10)]')
print(book)
print(type(book))
通過運行上面的代碼,你會發現這裡已經成功地将價格小于10元的書提取出來了。
jsonpath其實是非常适合用來獲取json格式的數據的一款工具,最重要的是這款工具輕量簡單容使用。關于jsonpath的介紹到這裡就結束了,開啟您的實戰演練吧!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!