百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

五、JSONPath使用(Python)(json数据python)

liuian 2025-04-11 00:59 56 浏览

1. 安装方法

pip install jsonpath

2. jsonpath与Xpath

下面表格是jsonpath语法与Xpath的完整概述和比较。

Xpath

jsonpath

概述

/

$

根节点

.

@

当前节点

/

.or[]

取子节点

*

*

匹配所有节点

[]

[]

迭代器标识(如数组下标,根据内容选值)

//

不管在任何位置,选取符合条件的节点

n/a

[,]

支持迭代器中多选

n/a

?()

支持过滤操作

n/a

()

支持表达式计算

下面我们就通过几个示例来学习jsonxpath的使用方法。

我们先来看下面这段json数据:

{ "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
    }
  }
}

3. 获取符合条件的节点

假如我需要获取到作者的名称该怎么样写呢?

如果通过Python的字典方法来获取是非常麻烦的,所以在这里我们可以选择使用jsonpath.。

具体代码示例如下所示:

import jsonpath

author = jsonpath.jsonpath(data_json, '$.store.book[*].author')
print(author)

运行上面的代码你会发现,成功地获取到了所有的作者名称,并保存在列表中。

或者还可以这样写:

import jsonpath

author = jsonpath.jsonpath(data_json, '$..author')
print(author)

4. 使用指定索引

还是使用上面的json数据,假如我现在需要获取第三本书的价格。

third_book_price = jsonpath.jsonpath(data_json, '$.store.book[2].price')
print(third_book_price)

运行上面的代码,你会发现成功地获取到了第三本书的价格。

5. 使用过滤器

isbn_book = jsonpath.jsonpath(data_json, '$..book[?(@.isbn)]')
print(isbn_book)
print(type(isbn_book))

通过运行上面的代码,你会发现,成功地将含有isbn编号的书籍过滤出来了。

同样的道理,根据上面的例子,我们也可以将价格小于10元的书过滤出来。

book = jsonpath.jsonpath(data_json, '$..book[?(@.price<10)]')
print(book)
print(type(book))

通过运行上面的代码,你会发现这里已经成功地将价格小于10元的书提取出来了。

jsonpath其实是非常适合用来获取json格式的数据的一款工具,最重要的是这款工具轻量简单容使用。关于jsonpath的介绍到这里就结束了,开启您的实战演练吧!

相关推荐

一般家庭买什么电脑好(不懂电脑的人建议买联想吗)

家庭在使用电脑时,要根据自己的需求来选择电脑。目前电脑主要有两种,一种是笔记本,一种是台式机。1、如果是经常出门办公,比如经常出差需要带电脑,作为家庭在选择电脑时,这时由于自己经常出差带电脑,就要选择...

云电脑软件哪个好用(云电脑好用的)

达龙云电脑在网络环境良好的情况下,操作起来非常流畅。另外,延迟也不高,这点因该说云电脑控制的非常好。云电脑还支持移动设备,安卓、IOS平台都得到了支持。玩家们可以通过在手机端连接云电脑之后就能在手机上...

如何设置网络连接(如何设置网络连接人数)
  • 如何设置网络连接(如何设置网络连接人数)
  • 如何设置网络连接(如何设置网络连接人数)
  • 如何设置网络连接(如何设置网络连接人数)
  • 如何设置网络连接(如何设置网络连接人数)
笔记本电脑如何连接无线wifi

要连接笔记本电脑到WiFi,首先确保你的笔记本电脑有无线网卡,并且WiFi已经开启。在电脑桌面右下角的WiFi图标处点击鼠标右键,选择“打开网络和Internet设置”,然后点击“WiFi”,在可用网...

gho文件安装win10系统方法(gho文件怎么重装系统)

不建议这么操作,如果真的要复制,也是很麻烦的,首先要删除win10里面所有的驱动,注意是所有的,然后关机,注意不能重启进入系统,否则又要重新再来,其次找个U盘pe启动盘或者启动光盘,在开机进入pe系统...

下载163免费邮箱(免费下载网易邮箱163)

第一步:首先,我们手机里要有一个浏览器,小编比较用UC浏览器,当然可以用手机都是自带网页浏览器的,我这边的手机下载网易邮箱第二步:打开UC浏览器或者带浏览器,我们在地址栏上直接输入最新网易邮箱下载安装...

windows microsoft(windows microsoft store加载不出)

电脑开机时出现MicrosoftWindows遇到意外错误,可以尝试用最后一次正确配置来恢复一下。1、重启电脑。2、在电脑显示完硬件信息之后,进入windows界面之前,按F8键。3、在出现的选项菜单...

不读u盘的解决办法(不读u盘怎么回事)

u盘在电脑里读不出来,出现这种情况,可以用以下方法解决:1、判断U盘是否已经正确插入USB接口,你可以拔下来换个插口试试。2、如果已经启用了USB设备但运行不正常,解决办法为在设备管理器中删除“通用...

win11怎么激活(win11怎么激活office)

目前,Windows11的永久激活方法还没有被公开或者确认。不过,你可以尝试以下几种方法来激活Windows11:使用数字许可证:如果你的电脑已经安装了Windows10并且已经激活,那么你可以...

笔记本电脑快捷键大全(笔记本电脑快捷键大全常用)
  • 笔记本电脑快捷键大全(笔记本电脑快捷键大全常用)
  • 笔记本电脑快捷键大全(笔记本电脑快捷键大全常用)
  • 笔记本电脑快捷键大全(笔记本电脑快捷键大全常用)
  • 笔记本电脑快捷键大全(笔记本电脑快捷键大全常用)
苹果恢复出厂设置(苹果恢复出厂设置还能恢复数据吗)

首先打开手机上面的“设置”功能,进入手机的系统设置。进入手机的设置后,选择“通用"。进入通用之后,往下滑动页面,在页面的最下方可以看到“还原”的选项,点击进入。进入还原之后,有多个还原选项,我...

路由器的配置步骤(路由器配置教学)

打开浏览器-输入192.168.1.1(一般路由器地址是这个或者查看路由器背面的登录信息)进路由-输入用户名,密码,(默认一般是admin)。2、在【设置向导】里,选择【PPOE拨号】(有些是ADS...

psp模拟器ios(psp模拟器ios推荐)

psp手机模拟器推荐PPSSPP,作为最流行的开源PSP模拟器,因为其强大的功能和兼容性广受玩家们喜爱。虽然提供了PC和安卓双平台的支持,但是有碍于安卓设备的硬件,移动端PPSSPP的功能并不完整。不...

台式机重装系统按f几(重装电脑系统按f几)

F8、F9、F10、F11、F12、F2、del。一般用到这几个。下面以联想电脑装WIN10系统为例:1、将制作好的U盘插入要重装系统的电脑,开机画面出现电脑品牌logo时,不停地按“f2键”进入“B...

win10激活错误代码0x8007007b

Win10激活出现0x8007007b解决方法如下1、找到计算机,右键点击属性,确认你的电脑系统是否是windows10。2、鼠标右击桌面,依次点击个性化-主题-桌面图标设置,勾选计算机后依次点击应用...