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中的一些类型转换函数小结
Feb 10 Python
在Python中使用zlib模块进行数据压缩的教程
Jun 26 Python
python实现决策树、随机森林的简单原理
Mar 26 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
Jun 14 Python
pyqt5实现俄罗斯方块游戏
Jan 11 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
你需要学会的8个Python列表技巧
Jun 24 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 Python
PyCharm2020.3.2安装超详细教程
Feb 08 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
swfupload 多文件上传实现代码
2008/08/27 PHP
php 接口类与抽象类的实际作用
2009/11/26 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
编辑浪子版表单验证类
2007/05/12 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
将JSON字符串转换成Map对象的方法
2016/11/30 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
React 使用browserHistory项目访问404问题解决
2018/06/01 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
python解析json实例方法
2013/11/19 Python
详解在Python程序中使用Cookie的教程
2015/04/30 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
Python金融数据可视化汇总
2017/11/17 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
python实现吃苹果小游戏
2020/03/21 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
《匆匆》教学反思
2014/02/22 职场文书
厂区绿化方案
2014/05/08 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
秋季运动会开幕词
2015/01/28 职场文书
审美与表现自我评价
2015/03/09 职场文书
主持人开场白台词
2015/05/29 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript