JsonPath用法详解

JsonPath用法详解JSONPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括Javascript、Python、PHP和Java。JSONPath的安装方法如下:pipinstalljsonpathJSONPath语法和XPATH语法对比JSON结构清晰,可读性高,复杂度低,非常容易匹配。JSONPath的语法与Xpath类似,如下表所示为JSONPath与XPath语法对比。下面使用一个JSON文档演示JSONPath的具体使用。JSON文档的内容如下:{

大家好,又见面了,我是你们的朋友全栈君。

JSONPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括Javascript、Python、PHP和Java。

JSONPath的安装方法如下:

pip install jsonpath

JSONPath语法和XPATH语法对比 JSON结构清晰,可读性高,复杂度低,非常容易匹配。JSONPath的语法与Xpath类似,如下表所示为JSONPath与XPath语法对比。
在这里插入图片描述下面使用一个JSON文档演示JSONPath的具体使用。JSON 文档的内容如下:

{ 
   
  "store": { 
   
    "book":[
      { 
    "category": "reference",
        "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { 
    "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
    }
  }
}

假设变量bookJson中已经包含了这段JSON字符串,可通过以下代码反序列化得到JSON对象:

books=json.loads(bookJson)

(1)查看store下的bicycle的color属性:

checkurl = "$.store.bicycel.color"
print(jsonpath.jsonpath(books, checkurl))
# 输出:['red']

(2)输出book节点中包含的所有对象:

checkurl = "$.store.book[*]"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)

(3)输出book节点的第一个对象:

checkurl = "$.store.book[0]"
obj = jsonpath.jsonpath(books, checkurl)
print(obj)
# 输出: ['category': 'reference', 'author': 'Nigel Rees', 'title': 'Sayings of the Century', 'price': 8.95}]

(4)输出book节点中所有对象对应的属性title值:

checkurl = "$.store.book[*].title"
titles = jsonpath.jsonpath(books, checkurl)
print(titles)
# 输出: ['Sayings of the Century', 'The Lord of the Rings']

(5)输出book节点中category为fiction的所有对象:

checkurl = "$.store.book[?(@.category=='fiction')]”
books=jsonpath.jsonpath(books, checkurl)
print(books)
# 输出:[{'category': 'fiction', 'author': 'J. R. R. Tolkien', 'title': 'The Lordof the Rings', 'isbn': '0-395-19395-8', 'price': 22.99}]

(6)输出book节点中所有价格小于10的对象:

checkurl="$.store.book[?(@.price<10)]"
books = jsonpath.jsonpath(books, checkurl)
print(books)
# 输出: [{'category': 'reference', 'author': 'Nigel Rees', 'title':'Sayings of the Century', 'price': 8.95}]

(7)输出book节点中所有含有isb的对象:

checkurl = "$.store.book[?(@.isb)]"
books = jsonpath.jsonpath(books,checkurl)
print(books)
# 输出: [{'category': 'fiction', 'author': 'J. R. R. Tolkien', 'title': 'The Lord of the Rings', 'isbn': '0-395-19395-8', 'price': 22.99}]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150765.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm调试快捷键_pycharm调试debug入门

    pycharm调试快捷键_pycharm调试debug入门F7(单步调试):若该步骤中存在子函数,会进入子函数中执行单步调试。F8(单步调试):若该步骤中存在子函数,不会进入子函数,把子函数当做单步执行。F9:直接跳到下一个断点。…

    2025年8月4日
    5
  • 会议室预定功能_高校会议室预订系统功能简介

    会议室预定功能_高校会议室预订系统功能简介一、功能介绍这是一个基于前端页面js代码的动态效果和后端对数据库数据更新的操作,主要实现的是会议室的预定功能,当员工进入预定页面后可以看到某天的某个会议室的某个时段是否被预定,当没被预定的情况下,就

    2022年8月3日
    5
  • Nginx服务器安装阿里云SSL证书教程[通俗易懂]

    Nginx服务器安装阿里云SSL证书教程[通俗易懂]Nginx配置SSL证书,大致分为5个步骤:步骤1:申请一张测试试用证书步骤2:下载证书并上传到服务器步骤3:在服务器配置证书步骤4(可选):配置HTTP强制跳转HTTPS步骤54:开放HTTPS访问及验证下面开始我们的配置步骤1:申请一张测试试用证书打开阿里云控制台官网,搜索SSL,点击进入SSL证书(应用安全)选择左侧SSL证书,点击免费证书点击立即购买,会弹出右侧购买栏,选择DV单域名证书【免费试用】,点击下方购买由于该证书限制只能有一个,所以接

    2022年10月3日
    3
  • 代码农民提高生产力

    代码农民提高生产力

    2022年1月4日
    51
  • 默认情况下安装的应用程序C盘后提示权限不足,当你开始介意。。。

    默认情况下安装的应用程序C盘后提示权限不足,当你开始介意。。。

    2022年1月5日
    59
  • c语言中static关键字用法详解

    c语言中static关键字用法详解概述static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。但是对于c语言初学者,static由于使用灵活,并不容易掌握。本文就static在c语言中的应用进行总结,供参考使用。错漏之处,请不吝指正。在程序中使用static变量1.局部变量普通局部变量是再熟悉不过的变量了,在任何一个函数内部定义的变量(不加static修饰…

    2022年4月30日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号