jsonpath 语法介绍

文章目录

  • 前言

  • 一、对jsonpath的理解

  • 二、补充

  • 三、哪里可以用的到呢?

  • 总结


前言

在使用Python做接口测试中需要获取json中的字段值,因此需要使用jsonpath里面的提取规则,所以特意学习了jsonpath中的语法。


一、对jsonpath的理解

在线运行地址:JSONPath Online EvaluatorAn online playground for JSONPathhttp://jsonpath.com/

下面有示例的json字符串

(1)解释 . 和 $ 字符

$.store.book  解释:$ 表示根节点,. 表示根节点下。(这个总体意思是:根节点下的store节点下的book节点)

2)解释 ..字符:表示:递归匹配所有子元素,然而获取所有符合条件的内容(这个条件是跟在 ..后面)

$.store..price  解释:总体意思是:根节点下的store节点下的所有的子节点的price节点

(3)解释:[ ]字符:表示索引的取值

$.store.book[2] 解释:根节点下的store节点下的book节点中的第二个数据块

(4)解释:* 字符:表示:通配符,匹配下级节点(注意:这个的节点是指有键值对的节点,不是外层取名字的节点)

$.store.* 解释:根节点下的store节点下的book节点下的所有节点

(5)解释:@ 字符:表示:当前元素下(节点下),相当于一种限定

()字符:表示:里面写脚本表达式(也就是函数)

 $..book[(@.length-1)] 解释:根节点下的book节点下的第四个节点(倒数第一个)。

[]里面放置索引,@表示:当前book这个元素,.表示这个元素下。length是一个函数,统计这个book元素下的个数。length-1:因为索引的取值是从0开始。

 

(6)解释:?() 字符:表示:过滤操作(过滤表达式)

 过滤表达式,经常与@符号搭配使用

 $..book[?(@.price<10)]  解释:根节点下的所有节点中的book节点,在book节点下过滤筛选出,在@限定下的当前节点中price<10的节点的数据

再次解释:@ . :表示限定当前节点;在此例子配置中表示:限定当前book节点

 二补充

 这是一个非常经典的案例,你几乎可以在任何介绍JSON Path的地方看到它,但是很实用。

{ "store": {"book": [ { "category": "reference","author": "Nigel Rees","title": "Sayings of the Century","price": 8.95},{ "category": "fiction","author": "Evelyn Waugh","title": "Sword of Honour","price": 12.99},{ "category": "fiction","author": "Herman Melville","title": "Moby Dick","isbn": "0-553-21311-3","price": 8.99},{ "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}}
}

参考优秀的博主:JSON Path 语法介绍和使用场景_小雨青年的博客-CSDN博客

参考一些博主:nulljMESPATH是一种用于查询和操作JSON文本数据的语言和库。它的语法和操作类似于XPath和SQL,但是专门用于JSON格式的数据,可以从JSON文档中提取和转换元素。它支持过滤、投影、排序等操作,类似于SQL语言。完全规范JMESPath语言以ABNF语法和完整规范描述。这确保了语言语法的精确定义。兼容性测试JMESPath有一整套数据驱动的测试用例。这样可以确保多个库的功能相同,使开发人员能够在他们选择的语言中实现 JMESPath 。多语言库每个JMESPath库都通过了一整套符合性测https://blog.csdn.net/zhouruifu2015/article/details/130056912?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-4-130056912-blog-123276600.235^v36^pc_relevant_default_base3&spm=1001.2101.3001.4242.3&utm_relevant_index=5

DN博客JSONPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括Javascript、Python、PHP和Java。JSONPath的安装方法如下:pip install jsonpathJSONPath语法和XPATH语法对比 JSON结构清晰,可读性高,复杂度低,非常容易匹配。JSONPath的语法与Xpath类似,如下表所示为JSONPath与XPath语法对比。下面使用一个JSON文档演示JSONPath的具体使用。JSON 文档的内容如下:{ https://blog.csdn.net/fallenjency/article/details/123276600?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168446023916800188547535%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168446023916800188547535&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-123276600-null-null.142^v87^control_2,239^v2^insert_chatgpt&utm_term=jsonpath%E8%AF%AD%E6%B3%95&spm=1018.2226.3001.4187

三、哪里可以用的到呢?


光有语法可操作意义不大,那么哪里可以用到JSON Path呢?

1. Java
Jayway JsonPath ,用于读取 JSON 文档的 Java DSL。

项目地址: https://github.com/json-path/JsonPath

2. PHP
JsonPath,JsonPath的PHP实现。

项目地址: https://github.com/Galbar/JsonPath-PHP

3. JavaScript
jsonpath, 使用 JSONPath 表达式查询 JavaScript 对象。 用于 Node.js 的强大/安全的 JSONPath 引擎。

项目地址: https://github.com/dchester/jsonpath

4. Python
jsonpath-ng,旨在符合标准的 Python JSONPath 的最终实现,包括算术和二进制比较运算符,并为元编程提供清晰的 AST。

项目地址:https://pypi.org/project/jsonpath-ng/

5. Go
Jsonpath,JsonPath的PHP实现。

项目地址:https://github.com/yalp/jsonpath
 


四、总结

JSON Path 作为一个语法标准,实现了对JSON的便捷读取。另外,各种语言的JSON Path实现的项目名称都差不多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/41688.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何结合均线分析伦敦金行情走势线图

伦敦金并不是普通的黄金投资产品&#xff0c;它不但拥有黄金基本的投资属性&#xff0c;还拥有高杠杆双向交易的特性&#xff0c;如果投资者只懂得怎么投资黄金&#xff0c;但没有娴熟的交易技巧和稳健的交易心态的话&#xff0c;恐怕还是难以在这个市场取得成功。 伦敦金价每天…

5.8晚间黄金行情走势分析及短线交易策略

近期有哪些消息面影响黄金走势&#xff1f;本周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周一亚洲时段&#xff0c;现货黄金小幅反弹&#xff0c;目前交投于2024.3美元/盎司附近&#xff0c;一方面是金价上周五守住了 2000 整数关口&#xff0c;逢低买盘涌…

高胜率现货黄金走势图形

做现货黄金&#xff0c;如果投资者能成功发现市场的底部&#xff0c;收益无疑会十分可观。金价走势图中经常会见出现各种底部&#xff0c;楔形底、双底、圆弧底、头肩底….虽然是三角形的底部相对更为罕见&#xff0c;但一旦出现&#xff0c;后期的涨幅通常将会超出我们的想象&…

前十名现货黄金价格行情分析软件

很多刚接触现货黄金投资的新人&#xff0c;也许都不太了解现货黄金价格行情分析软件&#xff0c;每个不同时段中的现货黄金价格行情分析图&#xff0c;反映的是该时段的多空角力情况&#xff0c;从而了解金价大致趋向&#xff0c;由此指引投资者作出合理的交易计划&#xff0c;…

5.21下周黄金走势分析及开盘独家交易策略

近期有哪些消息面影响黄金走势&#xff1f;下周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周五(5月19日)美市尾盘&#xff0c;现货黄金收报1977.54美元/盎司&#xff0c;大幅上升19.99美元或1.02%&#xff0c;日内最高触及1984.22美元/盎司&#xff0c;最低…

运用常用指标进行白银走势预测

银市中有许许多多的技术指标&#xff0c;这些指标都是帮助我们预测走势、完成交易的。所以&#xff0c;在白银走势预测的过程中就涉及了白银走势预测的问题。那么在白银走势预测中&#xff0c;我们常用那些指标呢&#xff1f;那些技术指标最能对我们的预测和交易结果最有帮助呢…

5.11黄金最新行情走势分析及多空交易策略

近期有哪些消息面影响黄金走势&#xff1f;本周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;北京时间周三(5月10日)20:30&#xff0c;美国劳工部公布4月通胀报告&#xff0c;整体与核心CPI年率都走低&#xff0c;支持美联储6月份保持利率不变。数据显示&…

陶泓达:4.11黄金原油白银最新走势分析及操作策略!

黄金行情走势分析&#xff1a;   周一(4月10日)&#xff0c;国际金价一度跌约1%&#xff0c;重回2000美元干口下方。此前公布的美国3月非农就业数据显示劳动力市场吃紧&#xff0c;并提高了美联储5月再次加息的预期。金属公司MKS PAMP在一份报告中表示&#xff1a;“金价自20…

5.20下周黄金行情走势分析及开盘独家交易策略

近期有哪些消息面影响黄金走势&#xff1f;下周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周五(5月19日)&#xff0c;现货黄金价格下跌又反弹&#xff0c;现货黄金持续走高美联储主席鲍威尔&#xff1a;那些积极的供应冲击不太可能重复出现&#xff0c;美联…

6.4下周黄金最新行情走势分析及开盘交易策略

近期有哪些消息面影响黄金走势&#xff1f;下周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周五(6月2日)&#xff0c;美市尾盘&#xff0c;现货黄金收报1947.82美元/盎司&#xff0c;大幅下跌29.70美元或1.50%&#xff0c;日内最高触及1983.43美元/盎司&…

国际现货黄金走势图如何分析?

我们做任何的事情&#xff0c;都要有独立分析的过程。毕竟投资国际现货黄金是我们投资者自己的资金&#xff0c;最好能够自己做出判断进而去选择&#xff0c;而不是依靠外力。那么小编下面来谈谈国际现货黄金走势图如何分析的问题。 分析国际现货黄金走势图的方法无非是三个流派…

5.29今日黄金最新行情走势分析及多空交易策略

近期有哪些消息面影响黄金走势&#xff1f;今日黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;上周五(5月26日)美市尾盘&#xff0c;现货黄金收报1946.01美元/盎司&#xff0c;上升4.76美元或0.25%&#xff0c;日内最高触及1957.31美元/盎司&#xff0c;最低触…

陶泓达:3.27最新黄金原油白银走势分析及操作策略!

【黄金行情走势分析】 上周五&#xff0c;黄金收盘1975附近&#xff0c;周K十字阴K收盘&#xff01;在上周五的日内点评之中&#xff0c;李呈金说过&#xff0c;周五要防止下跌&#xff0c;修正&#xff0c;因此&#xff0c;持续做空思路为主。最后的修正还是走出来了。 所以&a…

现货黄金走势图怎么看?

K线走势图在现货黄金交易中非常重要&#xff0c;如果投资者看不懂K线图&#xff0c;就等同农民看不懂农民历、狙击手看不准瞄准器&#xff0c;司机握不紧方向盘。对于初学者而言&#xff0c;从零开始地自学K线知识可能有点难度&#xff0c;但如果能得到一套系统的学习方法&…

Microsoft Edge 浏览器BingChat (聊天选项)不见处理

今天打开Microsoft Edge 浏览器搜索的时候发现之前的“聊天”选项不见了&#xff0c;鼠标上滑也不出来 一开始吓了一跳&#xff08;后来学废了&#xff0c;来做个笔记&#xff09; 当时大概是这样 然后需要找回bingchat 清除浏览器cookies&#xff08; CtrlShiftDelete&…

New Bing Sorry, looks like your network settings are preventing access to this feature.

Sorry, looks like your network settings are preventing access to this feature. 解决方案&#xff1a; X-Forwarded-For 从8.8.8.8&#xff0c; 改为 1.1.1.1 参考 https://www.v2ex.com/t/924296

【英语】大学英语CET考试,口语部分2(课程笔记)

文章目录 1、口语考试介绍与备考攻略1.1 口语考试介绍1.2 考试备考攻略 2、其他补充&#xff08;考前&#xff09;2.1 一些补充2.2 口语考试培训&#xff08;重要&#xff09; 上课老师&#xff1a;金格妃 上课时间&#xff1a;4h 1、口语考试介绍与备考攻略 方法是通用的&…

介绍一个好东西:RELO, 代码分析用的

http://steeven.iteye.com/blog/370738 Eclipse Netbeans 项目管理 UML Git 介绍一个好东西&#xff1a;RELO, 代码分析用的 先说几个题外话&#xff1a; 1. 饭碗掉到马桶里面还要不要用了&#xff1f;重要的马桶里面还有新鲜的shit。偶是做软件的&#xff0c;选择了重用。…

chatgpt赋能python:Python单词怎么发音?

Python单词怎么发音&#xff1f; 如果你是一个Python编程语言爱好者&#xff0c;无论是初学者还是有10年的编程经验&#xff0c;你可能会问&#xff1a;Python单词怎么发音&#xff1f;这是一个非常常见的问题&#xff0c;如果你想在编程社区中站稳脚跟&#xff0c;理解这个问…

chatgpt赋能python:Python的发音

Python的发音 Python是一种广泛使用的编程语言&#xff0c;用于web开发、数据分析、科学计算等众多领域。然而&#xff0c;Python这个词汇的发音在不同的地方却存在差异。在本文中&#xff0c;我们将介绍Python的发音&#xff0c;解决大家的困惑。 发音方式 Python在英语中常…