jsonpath
1. 安装 pip install jsonpath
2. jsonpath语法:
符号 | 描述 |
$ | 查询的根节点对象,用于表示一个json数据,可以是数组或对象 |
@ | 过滤器断言(filter predicate)处理的当前节点对象,类似于Java中的this字段 |
* | 通配符,可以表示一个名字或数字 |
.. | 可以理解为递归搜索,deep scan。 AVailable anywhere a name is required |
.<name> | 表示一个子节点 |
['<name>'(,'<name>')] | 表示一个或多个子节点 |
[<number>(,<number>)] | 表示一个或多个数组下标 |
[start:end] | 数组片段,区间为[start,end),不包括end |
[?(expression)] |
过滤器表达式,表达式结果必须是Boolean |
3. 函数
名称 | 描述 | 输出 |
min() | 获取数值类型数组的最小值 | Double |
max() | 获取数值类型数组的最大值 | Double |
avg() | 获取数值类型数组的平均值 | Double |
stddev() | 获取数值类型数组的标准差 | Double |
length() | 获取数值类型数组的长度 | Integer |
4. 过滤器
过滤器是用于过滤数组的逻辑表达式,一个通常的表达式形如:[?(@.age>18)],可以通过逻辑表达式&&或||组合多个过滤器表达式,例如
[?(@.price<10 && @.category == 'fiction')],字符串必须用单引号包围,例如[?(@.color == 'blue')]
操作符 | 描述 |
== | == 等于符号,但数字1不等于字符串1(note that 1 is not equal to '1') |
!= | 不等于符号 |
< | 小于符号 |
<= | 小于等于符号 |
> | 大于符号 |
>= | 大于等于符号 |
=~ | 判断是否符合则这表达式,例如[?(@.name =~ /foo.*?/i)] |
in | 所属符号,例如[?(@.size in ['S','M'])] |
nin | nin 排除符号 |
size | size of left(arry or string)should match right |
empty |
判空符号 |
5. xpath jsonpath 对比
xpath | Jsonpath | Result |
/store/book/author | $.store.book[*].author | 所有book的author节点 |
//author | $..author | 所有author节点 |
/store/* | $.store.* | store下的所有节点book数组和bicycle节点 |
/store//price | $.store..price | store下的所有price节点 |
//book[3] | $..book[2] | 匹配第三个book节点 |
//book[last()] | $..book[(@.length-1)] 或$..book[-1:] | 匹配倒数第一个book节点 |
//book[posision()<3] | $..book[0,1] 或$..book[:2] | 匹配前两个book节点 |
//book[isbn] | $..book[?(@.isbn)] | 过滤包含isbn字段的节点 |
//book[price<10] | $..book[?@.price<10)] | 过滤price<10的节点 |
//* | $..* | 递归匹配所有子节点 |
本文来自博客园,作者:来了发发发,转载请注明原文链接:https://www.cnblogs.com/julia888/p/17446457.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本