返回顶部
首页 > 资讯 > 后端开发 > Python >Python中JsonPath提取器和正则提取器怎么使用
  • 263
分享到

Python中JsonPath提取器和正则提取器怎么使用

2023-07-05 16:07:45 263人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python中JSONPath提取器和正则提取器怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中jsonPath提取器和正则提取器怎么使用文章都会有所收获,下面我们一起来看

这篇文章主要介绍了pythonJSONPath提取器和正则提取器怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PythonjsonPath提取器和正则提取器怎么使用文章都会有所收获,下面我们一起来看看吧。

1.1 正则提取器

正则提取(正则表达式只能提取字符串的数据)

re.seach:只匹配一个值,通过下标[1]取值,没有匹配到返回None
2、re.findall:匹配多个值,返回列表list,多个值通过下标取值,没有返回None

1.2 正则示例:

import reimport requestsa = requests.get("Http://www.baidu.com")# print(a.text)b = re.search('charset=(.*?)><meta http-equiv=X-UA-Compatible content=IE=Edge>', a.text)print(b)print(b.group())print(b.groups())print(b.group(1))

结果:

<re.Match object; span=(94, 157), match='charset=utf-8><meta http-equiv=X-UA-Compatible co>
charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge>
('utf-8',)
utf-8

匹配通配符:

我们一般用(.*?)和(.+?)来匹配我们需要提取的数值

解释:

  • . 表示任意一个字符

  • + 表示匹配它前面的表达式1次或者多次

  • * 表示匹配它前面的表达式0次或者多次

  • ? 表示匹配它前面的表达式1次或者多次

token = re.search('"token":"(.*?)",',res.text)[1]print("token1:%s",%token)token = re.findall('"token":"(.*?)",'res.text)print("token2:%s",%token)

1.3 JsonPath提取器

JsonPath提取(JsonPath只能提取json格式的数据)

jsonpath.jsonpath ,返回的是一个list,通过下标取值,没有返回None

JsonPath语法

符号描述
$查询的根节点对象,用于表示一个json数据,可以是数据或者对象
@过滤器,处理的当前节点对象
*获取所有节点
.获取子节点
. .递归搜索,筛选所有符合条件的节点
?()过滤器表达式,筛选操作
[a]或者[a,b]迭代器下标,表示一个或多个数组下标

1.4 JsonPath提取器具体使用

下面使用一个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)

查看store下的bicycle的color属性

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

输出book节点中包含的所有对象

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

#输出
[{'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}]

输出book节点的第一个对象

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

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

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

输出book节点中category为fiction的所有对象

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

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

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

输出book节点中所有含有isb的对象

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

关于“Python中JsonPath提取器和正则提取器怎么使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python中JsonPath提取器和正则提取器怎么使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网Python频道。

--结束END--

本文标题: Python中JsonPath提取器和正则提取器怎么使用

本文链接: https://lsjlt.com/news/353461.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中JsonPath提取器和正则提取器怎么使用
    这篇文章主要介绍了Python中JsonPath提取器和正则提取器怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中JsonPath提取器和正则提取器怎么使用文章都会有所收获,下面我们一起来看...
    99+
    2023-07-05
  • python中的jsonpath提取器怎么用
    这篇“python中的jsonpath提取器怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python中的jsonpa...
    99+
    2023-06-26
  • 解析python中的jsonpath提取器
    目录为什么要用jsonpathjsonpath的语法jsonpath 解析使用示例为什么要用jsonpath 就跟为什么要用xpath一样,jsonpath的设计灵感来源于xpath...
    99+
    2024-04-02
  • jmeter正则表达式提取器怎么使用
    这篇文章主要介绍“jmeter正则表达式提取器怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“jmeter正则表达式提取器怎么使用”文章能帮助大家解决问题。使用方法1,把正则表达式添加到需要提...
    99+
    2023-07-02
  • Jmeter中正则表达式提取器使用详解
    目录在使用Jmeter过程中,会经常使用到正则表达式提取器提取器,虽然并不直接涉及到请求的测试,但是对于数据的传递起着很大的作用,本篇博文就是主要讲解关于正则表达式及其在Jmeter...
    99+
    2024-04-02
  • python中如何使用正则表达式提取数据
    目录常用正则表达式实例re.compile 函数方括号-匹配几个字符之一切割字符串字符串替换匹配模式替换指定替换函数总结正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串...
    99+
    2023-02-06
    python使用正则表达式 python提取数据 使用正则表达式
  • python怎么用正则表达式提取字符串
    今天小编给大家分享一下python怎么用正则表达式提取字符串的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。用正则表达式提取字...
    99+
    2023-07-05
  • Shell中使用grep、sed正则提取和替换字符串
    linux中使用grep正则提取字符串 echo office365 | grep -P '\d+' -o find . -name "*.txt" | xargs grep -P 'regex' -o &nb...
    99+
    2022-06-04
    Shell grep正则提取 Shell sed正则提取 Shell 替换字符串
  • jmeter正则表达式提取器的用法与正则详解
    我们再使用jmeter请求接口时,碰到一些业务流程性的接口改怎么办,比如,我一个发布内容的接口需要用到登录接口返回的token加到请求上去才能发布内容,那在jmeter上该是如何实现...
    99+
    2024-04-02
  • Scala提取器怎么使用
    本篇内容主要讲解“Scala提取器怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Scala提取器怎么使用”吧!Scala 提取器是一个带有unapply方法的对象。unapply方法算是...
    99+
    2023-06-19
  • python正则提取特定字符串怎么实现
    可以使用Python的re模块来实现正则提取特定字符串。以下是一个示例代码: import re # 原始字符串 text = "...
    99+
    2023-10-26
    python
  • jmeter实现接口关联的两种方式(正则表达式提取器和json提取器)
    目录一、前言二、使用正则表达式提取器实现接口关联三、使用json提取器实现接口关联json提取器的使用步骤四、扩展:返回复杂json数据的提取一、前言 在开展接口测试或者是接口面试的...
    99+
    2024-04-02
  • python利用正则表达式提取字符串
    前言 正则表达式的基础知识就不说了,有兴趣的可以点击这里,提取一般分两种情况,一种是提取在文本中提取单个位置的字符串,另一种是提取连续多个位置的字符串。日志分析会遇到这种情况,下面我会分别讲一下对应的方法。...
    99+
    2022-06-04
    字符串 正则表达式 python
  • python用正则表达式提取/匹配中文汉字
    目录python用正则表达式提取中文python正则如何匹配中文汉字总结python用正则表达式提取中文 Python re正则匹配中文,其实非常简单,把中文的unicode字符串转...
    99+
    2024-04-02
  • mysql正则提取字符串怎么实现
    在MySQL中,可以使用正则表达式函数来实现字符串提取。1. 使用REGEXP函数:REGEXP函数用于在字符串中匹配正则表达式。语...
    99+
    2023-10-09
    mysql
  • 如何使用python提取字符串的中英文(正则判断)
    前言 提取中英文是我们在做数据处理时候经常使用的,最高效的做法就是通过正则判断了,下面是我写的笔记,希望对你有用 一. re中的sub函数 使用Python 的re模块,re模块提...
    99+
    2024-04-02
  • Shell中如何使用grep、sed正则提取和替换字符串
    小编给大家分享一下Shell中如何使用grep、sed正则提取和替换字符串,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux中使用grep正则提取字符串ec...
    99+
    2023-06-09
  • Telegraf:如何使用正则表达式处理器从字段中提取?
    php小编香蕉在本文中将介绍如何使用Telegraf的正则表达式处理器从字段中提取信息。Telegraf是一个功能强大的开源数据收集器,可以将各种数据源的信息收集并发送到不同的目的地。...
    99+
    2024-02-10
  • python如何用正则表达式提取字符串
    目录用正则表达式提取字符串1. 单个位置的字符串提取2. 连续多个位置的字符串提取用正则表达式提取字符串中的整数总结用正则表达式提取字符串 在日常工作中经常遇见在文本中提取特定位置字...
    99+
    2023-03-02
    python正则表达式 python提取字符串 正则提取字符串
  • 如何在 Golang 中使用正则表达式提取数据?
    正则表达式在 go 中可用于提取数据,使用 regexp 包处理正则表达式:编译正则表达式:regexp.compile("匹配模式")使用 find 或 findall 函数提取数据:...
    99+
    2024-05-13
    golang 正则表达式 提取数据
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作