jsonpath
import jsonpath, json obj = { "store": { "book": [ {"category": "文学作品", "author": "钱钟书", "title": "围城", "price": 80.5 }, {"category": "历史作品", "author": "孔子", "title": "春秋", "price": 90.9 }, {"category": "天文作品", "author": "天文", "title": "史上最强仙人", "isbn": "0-553-21311-3", "price": 80.9 }, {"category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ], "data": { "color": "red", "price": 19.95, "author": "乔丹", "book": [ {"category": "文学作品", "author": "钱钟书", "title": "围城", "price": 8.5555 }, {"category": "历史作品", "author": "孔子", "title": "春秋", "isbn": "0-553-21311-3", "price": 90.9999 }, {"category": "历史作品2", "author": "孔子2", "title": "春秋2", "price": 90.99 } ] } } } # print(type(json.dumps(obj))) # authors = jsonpath.jsonpath(obj, '$.store.book[*].author') # print(f"获取obj.store.book列表内所有元素的author key的值 =======> {authors}") # authors = jsonpath.jsonpath(obj, '$..author') # print(f"不区分层级结构,获取obj内所有的author key的值 =======> {authors}") # store_elements = jsonpath.jsonpath(obj, '$.store.*') # print(f"store的所有元素 =======> {store_elements}") # prices = jsonpath.jsonpath(obj, '$.store.*..price') # print(f"获取store里面的所有东西的price =======> {prices}") # prices = jsonpath.jsonpath(obj, '$.store.book..price') # print(f"获取store里book里面的所有东西的price =======> {prices}") # book3 = jsonpath.jsonpath(obj, '$.store.book[2]') # print(f"获取store里book里的第三本书 =======> {book3}") # book_last = jsonpath.jsonpath(obj, '$.store.book[(@.length-1)]') # print(f"获取store里book里的最后一本书 =======> {book_last}") # book_1_2 = jsonpath.jsonpath(obj, '$..book[1,2]') # book_1_2 = jsonpath.jsonpath(obj, '$..book[:1]') # print(f"获取前面的两本书 =======> {book_1_2}") # data = jsonpath.jsonpath(obj, "$..book[3][author,title]") # print(f"获取所有book下的author、title字段 =======> {data}") # isbn = jsonpath.jsonpath(obj, '$..book[?(@.isbn)]') # print(f"过滤出所有的包含isbn的书 =======> {isbn}") # under10 = jsonpath.jsonpath(obj, '$..book[?(@.price<10)]') # print(f"过滤出价格低于10的书 =======> {under10}") # book_name = jsonpath.jsonpath(obj, '$..book[?(@.title=="春秋")]') # print(f"过滤名字为春秋的书 =======> {book_name}") book_name = jsonpath.jsonpath(obj, '$..book[?(@.title=="春秋")][author,title]') print(f"过滤名字为春秋的书,取过滤后数据的值 =======> {book_name}") all = jsonpath.jsonpath(obj, '$.*') print(f"获取所有的值 =======> {all}")