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中常用的各种数据库操作模块和连接实例
May 29 Python
Python操作Access数据库基本步骤分析
Sep 19 Python
python字符串中的单双引
Feb 16 Python
快速实现基于Python的微信聊天机器人示例代码
Mar 03 Python
使用python 和 lint 删除项目无用资源的方法
Dec 20 Python
15行Python代码实现网易云热门歌单实例教程
Mar 10 Python
Django 中自定义 Admin 样式与功能的实现方法
Jul 04 Python
python单例模式的多种实现方法
Jul 26 Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 Python
Python字典的概念及常见应用实例详解
Oct 30 Python
详解python 降级到3.6终极解决方案
Feb 06 Python
Django跨域请求原理及实现代码
Nov 14 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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
PHP+DBM的同学录程序(3)
2006/10/09 PHP
PHP持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
深入理解PHP内核(一)
2015/11/10 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
js模拟滚动条(横向竖向)
2013/02/22 Javascript
jquery简单的拖动效果实现原理及示例
2013/07/26 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
pyenv命令管理多个Python版本
2017/03/26 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
python使用knn实现特征向量分类
2018/12/26 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
python对一个数向上取整的实例方法
2020/06/18 Python
Keras实现DenseNet结构操作
2020/07/06 Python
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
AJAX的全称是什么
2012/11/06 面试题
团支书的期末学习总结自我评价
2013/11/01 职场文书
挂科检讨书范文
2014/02/20 职场文书
人事行政经理岗位职责
2014/06/18 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
爱心捐款活动总结
2015/05/09 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书