本地json文件
{ "store": {
"book": [
{ "category": "修真",
"author": "六道",
"title": "坏蛋是怎样练成的",
"price": 8.95
},
{ "category": "修真",
"author": "天蚕土豆",
"title": "斗破苍穹",
"price": 12.99
},
{ "category": "修真",
"author": "康家三少",
"title": "斗罗大陆",
"isbn": "0-553-21311-3",
"price": 8.99
},
{ "category": "修真",
"author": "南派三叔",
"title": "星辰变",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
jsonpath的基本使用
import json
import jsonpath
obj=json.load(open('path.json', 'r', encoding='utf-8'))
# 书店所有书的作者
author_list=jsonpath.jsonpath(obj,'$.store.book[*].author')
# 所有的作者
author_list2=jsonpath.jsonpath(obj,'$..author')
# store下面所有的元素
store_list=jsonpath.jsonpath(obj,'$.store.*')
# store里面所有的钱
store_list2=jsonpath.jsonpath(obj,'$.store..price')
# 第三本书
book=jsonpath.jsonpath(obj,'$..book[2]')
# 最后一本书
last_book=jsonpath.jsonpath(obj,'$..book[(@.length-1)]')
# 前两本书
book_list=jsonpath.jsonpath(obj,'$..book[0:2]')
book_list2=jsonpath.jsonpath(obj,'$..book[:2]')
# 条件过滤需要在()前加?
# 过滤出所有包含isbn的书
isbn_list=jsonpath.jsonpath(obj,'$..book[?(@.isbn)]')
# 那几本书超过10元
price_10=jsonpath.jsonpath(obj,'$..book[?(@.price>10)]')