pip install jsonpath
import json
import jsonpath
fp = open('book.json', 'r', encoding="utf-8")
# json.load()方法是从json文件读取json,而json.loads()方法是直接读取json,
book_json = json.load(fp)
fp.close()
# 书店的所有作者
author_list = jsonpath.jsonpath(book_json, '$.store.book[*].author')
print(author_list)
# 所有的作者
author_list = jsonpath.jsonpath(book_json, "$..author")
print(author_list)
# store下面的所有元素
tag_list = jsonpath.jsonpath(book_json, '$.store.*')
print(tag_list)
# 第三本书
three_book = jsonpath.jsonpath(book_json, "$..book[2]")
print(three_book)
# 最后一本书
last = jsonpath.jsonpath(book_json, "$..book[(@.length-1)]")
print(last)
# 前面两本书
front_two = jsonpath.jsonpath(book_json, "$..book[0,1]")
print(front_two)
# 中间两本书
midle_two = jsonpath.jsonpath(book_json, "$..book[1:3]")
print(front_two)
#条件过滤
#查询包含isbn的书
has_isbn_book=jsonpath.jsonpath(book_json,"$..book[?(@.isbn)]")
print(has_isbn_book)
#查询课本价格大于10
more_than_ten=jsonpath.jsonpath(book_json,"$..book[?(@.price>10)]")
print(more_than_ten)
{ "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": {
"author": "老马",
"color": "黑色",
"price": 19.95
}
}
}