千家信息网

python中的jsonpath提取器怎么用

发表于:2024-09-26 作者:千家信息网编辑
千家信息网最后更新 2024年09月26日,这篇"python中的jsonpath提取器怎么用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起
千家信息网最后更新 2024年09月26日python中的jsonpath提取器怎么用

这篇"python中的jsonpath提取器怎么用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"python中的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 解析

接下来讲一个非常强大并且方便的 jsonpath 专门用于 json 解析,解决路径深的老大难问题!
先安装依赖包

pip install jsonpath

学习jsonpath 不得不提到xpath,这两者之间的语法是差不多的

XpathJSONPath描述
/$跟节点
.@现行节点
/. or []取子节点
..n/a取父节点 JsonPath不支持
//..相对节点 就是不管位置,选择所有符合条件的条件
  • |* |匹配所有元素节点

[] |[] |迭代器标示(可以在里面做简单的迭代操作,如数组下标,根据内容选值等)
| |[,] |支持迭代器中做多选
[] |?() |支持过滤操作
n/a |() |支持表达式计算
() |n/a |分组,JsonPath不支持

使用示例

$是查找的根节点,传参数是python的dict 类型,当查找到的时候返回一个list结果,查找失败的时候返回 False.

import jsonpathresult = {    "code": 0,    "data": [        {            "age": 20,            "create_time": "2021-09-15",            "id": 1,            "mail": "2833479@qq.com",            "name": "yoyo",            "sex": "M"        },        {            "age": 21,            "create_time": "2021-09-16",            "id": 2,            "mail": "12344@qq.com",            "name": "yoyo111",            "sex": "M"        }    ],    "msg": "success!"}msg = jsonpath.jsonpath(result, '$.msg')print(msg)   # 输出结果 ['success!']names = jsonpath.jsonpath(result, '$..name')print(names)   # 输出结果 ['yoyo', 'yoyo111']no = jsonpath.jsonpath(result, '$..yoyo')print(no)   # 找不到是结果是 False

这样就可以不用管层级结构也能取值了。

以上就是关于"python中的jsonpath提取器怎么用"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

节点 内容 支持 结果 数据 模式 路径 迭代 强大 不用 代表 就是 文章 时候 条件 知识 篇文章 表达式 语法 中括号 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 重庆品质网络技术服务包括什么 自主可控软件开发销售厂 萤石云服务器怎么重新设置 魅族手机连接不了服务器 轻应用服务器怎么在手机上面绑定 微域服务器 适合学软件开发玩的游戏 怎样连接数据库mysql 网络安全 我的故事 作文 vf数据库书 服务器安装两张显卡 戴尔r820服务器进安全模式 芜湖享游网络技术招聘 计算机病毒和网络技术安全维护 异速联6.4.7服务器 七日杀服务器启动超时 ole 服务器 网络安全宣传画素材 查看数据库的表空间索引 淄川考勤管理oa软件开发 设置ftp服务器详细步骤 计算机网络技术类一级类目代码 宜兴网络安全防控疫情 阜阳部山互联网科技有限公司 国家网络安全与信息安全管理制度 计算机网络技术第一二章练习 网络安全的思考和收获 软件开发人工天计算方式 数据库大小100个g 在数据库中产生数据不一致的根本原因是
0