Python中jsonpath解析库的原理是什么

发布时间:2020-11-25 14:29:09 作者:Leah
来源:亿速云 阅读:239

这篇文章将为大家详细讲解有关Python中jsonpath解析库的原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

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
  }
 }
}
JsonPathResult
$.store.book[*].authorstore中的所有的book作者
$…author所有的作者
$.store.*store下的所有元素
$.store…pricestore中的所有价钱
$…book[2]第三本书
$…book[(@.length-1)]最后一本书
$…book[0,1]取前两本书
$…book[?(@.isbn)]获取有jsbn的所有数
$…book[&#63;(@.price<10)]获取价格大于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中jsonpath解析库的原理是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. Python中json模块与jsonpath模块的区别是什么
  2. python数字类型math库原理解析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python jsonpath

上一篇:js框架有什么用

下一篇:MySql中常用的引擎有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》