python的jsonpath_python 提取json数据的jsonPath介绍及简单使用
为什么要用jsonpath
就跟为什么要用xpath一样,jsonpath的设计灵感来源于xpath。一个强大的json数据提取工具。让用户不用编写脚本就可以提取到相应的json数据。
jsonpath的语法
jsonpath可以什么这两种模式来检索数据:
以点为分隔
$.store.book[0].title
$.store.book[0,1] #可以取到第一个和第二个book值
$.store.book[*].title #可以取到所的的book值
以中括号为分隔
$['store']['book'][0]['title']
对于输入.路径,内中路径将始终使用更通用的中括号模式。 (我猜是因为jsonpath在python中是dict,访问方式刚好是用中括号)
还支持[start:end:step]模式
"$.store.book[0:3:2].title" #和python中的range步长计算是一致的
@符号表达式:即可以用来代表长度,也可以用来代表name。
$.store.book[(@.length-1)].title #取到最后一个book的title
$.store.book[?(@.price < 10)].title #取到价格小于10的书的title
jsonpath的xpath的语法比较:
XPath
JSONPath
描述
/
$
根节点
.
@
现行节点
/
.or[]
取子节点
..
n/a
取父节点,Jsonpath未支持
//
..
就是不管位置,选择所有符合条件的条件
*
*
匹配所有元素节点
@
n/a
根据属性访问,Json不支持,因为Json是个Key-value递归结构,不需要属性访问。
[]
[]
迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等)
|
[,]
支持迭代器中做多选。
[]
?()
支持过滤操作.
n/a
()
支持表达式计算
()
n/a
分组,JsonPath不支持
jsonPath的使用示例
----------------
from jsonpath import jsonpath
data = {...} #这个数据是下面的example data
print(jsonpath(data, "$.store.book[0:3:2].title")) #按步长取,到第1个和第3本书的titile
print(jsonpath(data, "$.store.book[0:2:2].title")) #按步长取到第1本书的titile
print(jsonpath(data, "$.store.book[?(@.price < 10)].title")) #取价格小于10的书的title
print(jsonpath(data, "$..store.book[(@.length -1)].title")) #取最后一本书的title
----------------
example data:
----------------
{ "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 } } }
----------------
参考
jsonPath官方文档
python的jsonpath_python 提取json数据的jsonPath介绍及简单使用相关推荐
- Python中jmespath解析提取json数据
在做接口自动化,测试断言时,我们经常需要提取接口的的响应数据字段,以前用过jsonpath,有几篇相关文章,可以参考下(Python深层解析json数据之JsonPath.[Jmeter篇]后置处理器 ...
- html怎么拿json数据,如何使用Python从HTML数据中提取JSON数据?
我正在尝试制作一个python脚本,可以在outlook中读取JSON数据电子邮件.但是问题是如何从HTML数据中提取JSON数据.这是我要提取的原始JSON数据.在{ "vpn_detai ...
- 一篇长文带你在python里玩转Json数据
Json简介 Json(JavaScript Object Notation) 很多网站都会用到Json格式来进行数据的传输和交换. 这因为Json是一种轻量级的数据交换格式,具有数据格式简单,读写方 ...
- hutol json null值没了_一篇长文带你在python里玩转Json数据
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 朱小五/凹凸玩数据 PS:如有需要Python学习资料的小伙伴可以加 ...
- C# json解析字符串总是多出双引号_一篇长文带你在python里玩转Json数据
Json简介 Json(JavaScript Object Notation) 很多网站都会用到Json格式来进行数据的传输和交换,就像上篇我提到的网易云音乐接口,它们返回的数据都是Json格式的. ...
- python为什么closed_为什么Python无法解析此JSON数据? [关闭] - Why can't Python parse this JSON data? [closed]...
问题: I have this JSON in a file: 我在文件中有此JSON: { "maps": [ { "id": "blabla&qu ...
- Python深层解析json数据之JsonPath
我们在做接口自动化时,一般接口响应的都是json数据体,对响应数据进行提取使用或断言,当数据量很大或层级很深时,就会变得很麻烦,于是就可以用到jsonpath模块,解决json路径深取值难的问题. 一 ...
- [知识图谱实战篇] 三.Python提取JSON数据、HTML+D3构建基本可视化布局
前面作者讲解了很多知识图谱原理知识,包括知识图谱相关技术.Neo4j绘制关系图谱等,但仍缺少一个系统全面的实例.为了加深自己对知识图谱构建的认识,为后续创建贵州旅游知识图谱打下基础,作者深入学习了张宏 ...
- Python爬虫笔记——解析json数据(以周杰伦歌单为例)及Headers
一.Network Network能够记录浏览器的所有请求.我们最常用的是:ALL(查看全部)/XHR(仅查看XHR)/Doc(Document,第0个请求一般在这里),有时候也会看看:Img(仅查看 ...
最新文章
- Windows下Python安装及pycharm,pip下载和安装第三方库
- Mybatis XML文件的异常
- ZZ:new/delete 和malloc/free 的区别
- 整理:关于聚簇索引和非聚簇索引的区别
- VTK:可视化之Legend
- ## 7.3 奇异值分解的几何意义
- 5815. 扣分后的最大得分
- 相机标定(4) 矫正畸变 undistort()和initUndistortRectifyMap()
- “阿里离职女高管”蹭马云热度遭阿里高管打假:重新定义高管
- 读书-算法《程序设计导引及在线实践》-简单计算题2:棋盘上的距离
- Android对话框控件读写,Android 对话框控件
- 二叉树:前序与后序、前序与中序以及中序与后序相同、相反的特征
- STK9 Object Browser灰色无法操作
- gps测试软件怎么算正常,完整的GPS测试和经济实用的解决方案
- 聊天机器人:DeepMind的sparrow
- 脱机外挂的时代来临了
- vue create is a Vue CLI 3 only command and you are using Vue CLI 2.9.6. You may want to run the
- XCode 下载链接
- 在ArcGIS中创建Python工具(一)
- 【网络】UCX(Unified Communication X )|统一抽象通信接口
热门文章
- 更新ubuntu15.10内核后,驱动解决
- 多文件目录下makefile文件递归执行编译所有c文件 很不错
- STM32F407VG uCOS-II2.91 IAR工程 以及uCOS使用库编译的方法
- 3 Oracle管理表
- 在html用div怎样写页脚,使用div+CSS将页脚始终控制在页面最下方的方法
- 2019年湘潭大学程序设计竞赛(重现赛)补题:F.Black White(尺取法)
- java反射的运用_java反射的使用
- 万亩良田,随着稻香河流IoT奔跑
- 【最爽的日期工具包LocalDate·超爽,超实用】(Java8版本)
- SQL基础【三、Select】