python中jsonpath的用法

这篇具有很好参考价值的文章主要介绍了python中jsonpath的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    接口返回的json数据,需要取值后断言,一般我们是使用jsonpath来提取接口返回的数据 JsonPath模块,是一个专门用于处理Json字符串的模块。JsonPath相当于是Xpath 部署JsonPath 通过pip install jsonpath来进行安装 通过JsonPath获得的内容,会以list的形式进行返回,也就意味着你的jsonpath是可以 有一个值或者多个值同时存在的。 如果要基于JsonPath来处理json数据,就一定要去同步处理list JsonPath定义中,如果表达式出现错误,则会返回False(布尔类型的值) JsonPath要么返回False,要么返回list。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import jsonpath,json

data = {
    "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
        }
    },
    "expensive": 10
}

# 基于JsonPath获取元素:通过jsonpath函数来获取(json数据,定位表达式)
"""
    jsonpath表达式的基本格式规范:
        $ 表示根节点,也是所有jsonpath表达式的开始
        . 表示获取子节点
        .. 表示获取所有符合条件的内容
        *  代表所有的元素节点
        [] 表示迭代器的标示(可以用于处理下标等情况)
        [,] 表示多个结果的选择
        ?() 表示过滤操作
        @ 表示当前节点
"""
bike = jsonpath.jsonpath(data,'$.store.bicycle.color')
print(bike)
print(bike[0])
book = jsonpath.jsonpath(data,'$.store.book')
print(book)
# 获取store下所有的price节点的值
price = jsonpath.jsonpath(data,'$.store..price')
print(price)
# 连接操作符,在xpath中 结果合并其他结果的集合。JSONPATH允许name或者数据索引。类似于xpath |
book_price = jsonpath.jsonpath(data,'$.store.book[0,1,2].price')
#切片遵循list的切片规则
book_price1 = jsonpath.jsonpath(data,'$.store.book[0:3].price')
print(book_price)
print(f'book_price1:{book_price1}')
# 获取price大于10的所有book
book_1 = jsonpath.jsonpath(data,'$..book[?(@.price>10)]')
print(book_1)
# 这是一条错误的JsonPath
book_2 = jsonpath.jsonpath(data,'$..展昭[?(@.price>10)]')
print(book_2)
print(type(book_2))
print(type(data))

结果集:文章来源地址https://www.toymoban.com/news/detail-543185.html

['red']
red
[[{'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}]]
[8.95, 12.99, 8.99, 22.99, 19.95]
[8.95, 12.99, 8.99]
book_price1:[8.95, 12.99, 8.99]
[{'category': 'fiction', 'author': 'Evelyn Waugh', 'title': 'Sword of Honour', 'price': 12.99}, {'category': 'fiction', 'author': 'J. R. R. Tolkien', 'title': 'The Lord of the Rings', 'isbn': '0-395-19395-8', 'price': 22.99}]
False
<class 'bool'>
<class 'dict'>

到了这里,关于python中jsonpath的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python之json.dumps()用法

    一、json.dumps简单介绍 json.dumps的功能是将字典类型转换为json格式的字符串类型,接口测试经常用到该函数,爬虫领域要配合请求头’Content-Type’: \\\'application/json;charset=utf-8’进行使用。 二、简单使用 三、携带参数说明 1、去掉,:后面的空格 2、正常显示中文

    2024年02月13日
    浏览(36)
  • Python之json常见四种用法

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,通常用于在客户端和服务器之间传递数据。在 Python 中,我们可以使用内置的 json 模块来处理 JSON 数据。json 模块提供了四个主要的函数来读取和写入 JSON 数据: json.load(),json.loads(),json.dump(),json.dumps() 对数据进行编

    2024年02月12日
    浏览(35)
  • 【嵌入式开源库:cJSON】 一个轻量级C语言JSON数据解析库用法详解

    cJSON是使用C语言编写,用来创建、解析JSON文件的库。cJSON特点就是工程文件简单,只有 一个.c 和 一个.h ,但提供函数接口功能齐全,麻雀虽小五脏俱全,使得在嵌入式工程中使用起来得心应手。 https://github.com/DaveGamble/cJSON 只需拉取 cJSON.c 和 cJSON.h 即可。 给出如下JSON格式示

    2023年04月26日
    浏览(92)
  • Python爬虫——解析_jsonpath

    jsonpath的安装 jsonpath的使用: json文件: 书店所有书的作者 所有的作者 store下面所有的元素 store里面所有东西的price 第三本书 最后一本书 前两本书 条件过滤需要在()的前面添加一个? 过滤出所有包含isbn的书 哪本书超过了10块钱 参考:https://blog.csdn.net/Obstinate_L/article/details/1

    2024年02月14日
    浏览(43)
  • Python爬虫学习笔记(五)————JsonPath解析

    目录 1.JSONPath —— xpath在json的应用 2.JSONPath 表达式 3.jsonpath的安装及使用方式 4.jsonpath的使用 5.JSONPath语法元素和对应XPath元素的对比 6.实例  (1)商店案例 (2) 解析淘票票的“城市选择”数据 1. JSONPath —— xpath在json的应用 xml最大的优点就有大量的工具可以分析,转换,

    2024年02月17日
    浏览(43)
  • Python中jsonpath库使用,及与xpath语法区别

    jsonpath库使用 pip install jsonpath 基本语法 JSONPath语法元素和对应XPath元素的对比

    2024年02月12日
    浏览(43)
  • python爬虫数据解析xpath、jsonpath,bs4

    解析数据的方式大概有三种 xpath JsonPath BeautifulSoup 打开谷歌浏览器扩展程序,打开开发者模式,拖入插件,重启浏览器,ctrl+shift+x,打开插件页面 安装在python环境中的Scripts下边,这里就是python库的位置,例如我的地址为:E:pythonpython3.10.11Scripts 解析本地文件etree.parse( \\\'xx.

    2024年02月13日
    浏览(46)
  • Python爬虫——解析_jsonpath解析淘票票网站

    jsonpath简单解析淘票票网站,获取城市名称 代码如下:

    2024年02月14日
    浏览(35)
  • 【Python从入门到进阶】30、JSONPath的介绍和使用

    接上篇《29、xpath抓取站长素材图片》 上一篇我们讲解了如何利用xpath来抓取站长素材网站的图片区首页的所有图片,本篇我们来介绍JSONPath的基础和具体使用。 1、什么是JSONPath? JSONPath是一种用于在JSON(JavaScript Object Notation)数据中定位和提取特定元素的查询语言。它类似于

    2024年01月22日
    浏览(42)
  • python spider 爬虫 之 解析 xpath 、jsonpath、BeautifulSoup (三)

    简称:bs4 BeautifulSoup跟lxml 一样,是一个html文档的解析器,主要功能也是解析和提取数据 优缺点 缺点:效率没有lxml的效率高 优点:接口接口人性化,使用方便 延用了css选择器 安装BeautifulSoup 1、安装:pip install bs4 2、导入:from bs4 import BeautifulSoup 3、创建bs4 对象 ① 服务器响

    2024年02月11日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包