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 05 Python
python获取一组汉字拼音首字母的方法
Jul 01 Python
python删除指定类型(或非指定)的文件实例详解
Jul 06 Python
python制作企业邮箱的爆破脚本
Oct 05 Python
python爬虫_自动获取seebug的poc实例
Aug 05 Python
Python编程实现蚁群算法详解
Nov 13 Python
python代码过长的换行方法
Jul 19 Python
Python多进程池 multiprocessing Pool用法示例
Sep 07 Python
python判断字符串或者集合是否为空的实例
Jan 23 Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
Python Pandas数据分析工具用法实例
Nov 05 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制作简单的内容采集器的原理分析
2008/10/01 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
elgg 获取文件图标地址的方法
2010/03/20 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
jquery过滤特殊字符',防sql注入的实现方法
2016/08/17 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
python多线程与多进程及其区别详解
2019/08/08 Python
python爬虫增加访问量的方法
2019/08/22 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
Python reques接口测试框架实现代码
2020/07/28 Python
解决c++调用python中文乱码问题
2020/07/29 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
全球精选男装和家居用品:Article
2020/04/13 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
房地产销售经理岗位职责
2014/01/01 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
公司开业致辞
2015/07/29 职场文书
导游词之太原天龙山
2020/01/02 职场文书
解析python中的jsonpath 提取器
2022/01/18 Python