借鉴文章:https://blog.csdn.net/fallenjency/article/details/123276600
实际应用:
建一个文件:bookJson里面放的是json内容
里面放的内容:
{
"store": {
"book":[
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{ "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
}
}
}
一、调用里面内容:$.store.bicycel.color
import json
import jsonpath
bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl = "$.store.bicycle.color"
text = jsonpath.jsonpath(books, checkurl)
print(text)
返回:
['red']
二、调用book下所有内容:
import json
import jsonpath
bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl = "$.store.book[*]"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)
返回:
[
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{ "category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
]
三、调用book节点的第一个对象:
import json
import jsonpath
bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl = "$.store.book[0]"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)
返回:
[
{'category': 'reference',
'author': 'Nigel Rees',
'title': 'Sayings of the Century',
'price': 8.95}
]
四、调用book节点全部title值
import json
import jsonpath
bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl = "$.store.book[*].title"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)
返回:
['Sayings of the Century', 'The Lord of the Rings']
五、输出book节点中category为fiction的所有对象:
import json
import jsonpath
bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl = "$.store.book[?(@.category=='fiction')]"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)
返回:
[
{'category': 'fiction',
'author': 'J. R. R. Tolkien',
'title': 'The Lord of the Rings',
'isbn': '0-395-19395-8', 'price': 22.99}
]
六、book节点中所有价格小于10的对象:
import json
import jsonpath
bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl="$.store.book[?(@.price<10)]"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)
返回:
[
{'category': 'reference',
'author': 'Nigel Rees',
'title': 'Sayings of the Century',
'price': 8.95}
]
七、输出book节点中所有含有isb的对象:
import json
import jsonpath
bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl = "$.store.book[?(@.isbn)]"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)
返回:
[{'category': 'fiction',
'author': 'J. R. R. Tolkien',
'title': 'The Lord of the Rings',
'isbn': '0-395-19395-8', 'price': 22.99}]