Python json解析库jsonpath原理及使用示例


Posted in Python onNovember 25, 2020

jsonpath

jsonpath 用于多层嵌套 json格式的 解析。

pip install jsonpath

JsonPath 描述
$ 根节点
@ 现行节点
.or[] 取子节点
n/a 取父节点,jsonpath为支持
.. 就是不管位置,选择所有复合条件的条件
* 匹配所有元素节点
n/a 根据属性访问,json不支持,因为json是个key-value递归结构,不需要数属性访问
[] 迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等)
[,] 支持迭代器中做多选
?() 支持过滤操作
() 支持表达式计算
n/a 分组,JsonPath不支持

jsonpath使用示例

book_dict = { 
 "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 Result
$.store.book[*].author store中的所有的book作者
$…author 所有的作者
$.store.* store下的所有元素
$.store…price store中的所有价钱
$…book[2] 第三本书
$…book[(@.length-1)] 最后一本书
$…book[0,1] 取前两本书
$…book[?(@.isbn)] 获取有jsbn的所有数
$…book[?(@.price 获取价格大于10
$…* 匹配所有数据

使用示例

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

import jsonpath

result = {
  "code": 0,
  "data": [
    {
      "age": 20,
      "create_time": "2019-09-15",
      "id": 1,
      "mail": "283340479@qq.com",
      "name": "yoyo",
      "sex": "M"
    },
    {
      "age": 21,
      "create_time": "2019-09-16",
      "id": 2,
      "mail": "123445@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 相关文章推荐
Python中的并发编程实例
Jul 07 Python
使用Python求解最大公约数的实现方法
Aug 20 Python
Python实现简单的HttpServer服务器示例
Sep 25 Python
利用python实现微信头像加红色数字功能
Mar 26 Python
基于python批量处理dat文件及科学计算方法详解
May 08 Python
对python中list的拷贝与numpy的array的拷贝详解
Jan 29 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
Jul 02 Python
python 实现兔子生兔子示例
Nov 21 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
Feb 17 Python
python中线程和进程有何区别
Jun 17 Python
Python Request类源码实现方法及原理解析
Aug 17 Python
python基于exchange函数发送邮件过程详解
Nov 06 Python
搭建pypi私有仓库实现过程详解
Nov 25 #Python
Python代码覆盖率统计工具coverage.py用法详解
Nov 25 #Python
python 实时调取摄像头的示例代码
Nov 25 #Python
Python存储读取HDF5文件代码解析
Nov 25 #Python
python 简单的调用有道翻译
Nov 25 #Python
浅析Python的命名空间与作用域
Nov 25 #Python
重构Python代码的六个实例
Nov 25 #Python
You might like
PHP图片验证码制作实现分享(全)
2012/05/10 PHP
PHP If Else(elsefi) 语句
2013/04/07 PHP
php字符串截取函数用法分析
2014/11/25 PHP
js获取单选按钮的数据
2006/11/27 Javascript
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
JS实现留言板功能
2017/06/17 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
公益活动邀请函
2014/02/05 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
综艺节目策划方案
2014/06/13 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
学习十八届四中全会依法治国心得体会
2014/11/03 职场文书
奖学金个人总结
2015/03/04 职场文书
2015年档案室工作总结
2015/05/23 职场文书
论语读书笔记
2015/06/26 职场文书
靠谱的活动总结
2019/04/16 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers