https://blog.csdn.net/liuchunming033/article/details/106272542
通过JSONPath表达式,使得从多层嵌套JSON数据中提取数据变得非常简单。
pip install jsonpath # VERSION 0.75
SONPath通过表达式定位JSON中的数据,一共有15个表达式,通过它们的灵活组合,提取JSON中数据非常容易。我们把JSON对象中每一个key都叫做一个属性(property)。下表是所有的JSONPath表达式,及其含义。
测试响应数据
import jsonpath
response={
"store": {
"book": [
{ "category": "reference",
"author": "shubook-1",
"price": 1.11
},
{ "category": "fiction",
"author": "shubook-2",
"price": 2.22
},
{ "category": "fiction",
"author": "shubook-3",
"title": "this is title",
"price": 3.33
}
],
"bookcopy":
{ "category": "fiction",
"author": "bookcopy-1",
"mobile": "188****1841",
"price": 4.44
},
"bicycle":
{
"color": "red",
"price": 5.55
}
},
"expensive": 10
}
json_result= jsonpath.jsonpath(response, '$.store..mobile') #第二个参数就可以使用jsonpath表达式获取
json_result = jsonpath.jsonpath(response, "$.store.*")
# $.store.*的用法和$['store'].*的结果一致,
# 得到一个list,第1个元素booke是一个list,第2个元素是bookecopy是一个对象,第3个元素也是一个对象
print(json_result)
#打印结果
[[{'category': 'reference', 'author': 'shubook-1', 'price': 1.11}, {'category': 'fiction', 'author': 'shubook-2', 'price': 2.22}, {'category': 'fiction', 'author': 'shubook-3', 'title': 'this is title', 'price': 3.33}], \n
{'category': 'fiction', 'author': 'bookcopy-1', 'mobile': '188****1841', 'price': 4.44}, \n
{'color': 'red', 'price': 5.55}]