python之jsonpath模块

安装方法:pip install jsonpath
官方文档:http://goessner.net/articles/JsonPath

简介

jsonpath表达式与xPath表达式类似,用来解析多层嵌套的json数据。
JsonPath是Json版的XPath。
JsonPath 对于 JSON 来说,相当于 XPath 对于XML

语法

JsonPath用符号$表示最外层对象,类似于Xpath中的根元素
jsonPath可以用:

  • 点表示法:.store.book [0].title
  • 括号表示法:$['store']['book'][0]['title']
语法 描述
$ 根节点
@ 当前节点
. 子节点,相当于xpath中的/
.. 子孙节点,相当于xpath中的//
* 通配符,匹配所有成员。
例如,address.*表示address对象的所有属性,
book[*]表示book数组的所有项目。
[n] 从数组中选择第n那一个元素。索引从0开始。
[n1,n2,…] 选择具有指定索引的数组元素,相当于上一个的多选。返回一个列表
[start:end]
[start:]
数组切片操作:
从start索引直到(但不包括)end索引选择数组元素。
省略end,则选择从start到数组结尾的所有元素。返回一个列表
[:n] 选择数组的前n个元素
[-n:] 选择数组的最后n个元素
[?(expression)] 过滤表达式,进行数据筛选
[(expression)] 使用表达式。
[(@.length-1)]选择数组中的最后一项。
在这里length是指当前数组的长度,而不是名为的JSON字段length
注意:
  • JsonPath的索引从0开始计数,而XPath索引从1开始
  • JsonPath中字符串使用单引号表示
  • JSONPath表达式(包括属性名称和值)区分大小写

函数

函数 描述
length() 提供数组的长度
min() 提供数字数组的最小值
max() 提供数字数组的最大值

过滤器

操作 描述
== 等于
!= 不等于
> 大于
>= 大于等于
< 小于
<= 小于等于
=~ 匹配[JavaScript正则表达式]例如,匹配描述以cat开头(不区分大小写)的项目。[?(@.description =~ /cat.*/i)]
! 用于取消过滤条件:[?([email protected])]匹配不具有该isbn属性的项目。
&& 逻辑AND,用于合并多个过滤器表达式:[?(@.category=='fiction' && @.price < 10)]
|| 逻辑OR,用于组合多个过滤器表达式:[?(@.category=='fiction' || @.price < 10)]
in 大于
=~ 大于

你可能感兴趣的:(python之jsonpath模块)