jsonpath 通过通用的表达式可以获取json中指定的值。
Python中jsonpath的使用
1、使用jsonpath需要安装jsonpath,在pycharm中执行命令:
pip install jsonpath
2、具体使用
$ 根节点(root)
. 子节点(一个点)
.. 子孙节点(两个点) 递归搜索
(*) 通配符,表示所有的元素
[] 子节点
?() 条件过滤
@ 代表当前元素
3、实例说明
import jsonpath
student_info = {
"code":null,
"success":true,
"data":{
"message":null,
"students":[
{
"name":"小明",
"detail":{
"sex":"男",
"age":28,
"height":174
}
},
{
"name":"小红",
"detail":{
"sex":"女",
"age":20,
"height":162
}
}
]
}
}
# 获取所有学生
res = jsonpath.jsonpath(student_info ,"$..students")
# 获取所有的name
res = jsonpath.jsonpath(student_info,"$..students.[*].name")
返回:
['小明', '小红']
# 获取年龄大于20的学生的性别
res = jsonpath.jsonpath(student_info, "$.data.students.[*].detail[?(@.age > 20)].sex")
也可以这样写:
res = jsonpath.jsonpath(student_info, "$..[*]..[?(@.age > 20)].sex")
print(res)
# 获取第2个学生的信息
res = jsonpath.jsonpath(student_info, '$.data.students[1]')
# 获取姓名为小明的学生的年龄
res = jsonpath.jsonpath(student_info, "$.data.students.[?(@.name=='小明')]..age")