相关文章推荐

jsonpath是一个极其强大的解析json文档的工具,jsonpath强大的语法可以帮助你定位json文档中任一你想要的数据。jsonpath提供了多种语言的实现,在Java, JavaScript, PHP,Python等语言中都能完美解析,不用担心切换语言之后就需要改代码的情况。下面将简要介绍一下jsonpath语法,以及在python中的使用,以下面一组数据为例:

obj = {
    "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语法

常规操作符

操作符描述
$查询根元素
@过滤正在处理的当前节点
*通配符。可在任何需要名称或数字的地方使用
深层扫描,在任何需要名称的地方使用
.<name>获取子节点
[’<name>’ (, ‘<name>’)]获取一个或多个子节点
[<number> (, <number>)]获取一个或多个数组下标索引
[start:end]切片数组运算符
[?(<expression>)]过滤表达式。表达式必须计算为布尔值
函数描述
min()获取数字数组的最小值
max()获取数字数组的最大值
avg()获取数字数组的平均值
stddev()获取数字数组的标准差值
length()获取数组的长度
sum()获取数字数组的和
keys()获取字典的键

过滤操作符

操作符描述
==左边等于右边,注意: 1不等于’1’
!=左边不等于右边
<左边小于右边
<=左边小于等于右边
>左边大于右边
>=左边大于等于右边
=~左边匹配正则表达式
in左边存在于右边
nin左边不存在于右边
subsetof左边是右边的子集
anyof左边与右边有交集
noneof左边与右边没有交集
size左边(数组或字符串)的大小应与右边匹配
empty左(数组或字符串)应该是空的

pyjsonpath

pip install pyjsonpath

book数组的前两个数据

>>> from pyjsonpath import JsonPath
>>> expr = "$.store.book[:2]"
>>> JsonPath(obj, expr).load()
        '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

获取book数据中price小于10的所有数据:

>>> from pyjsonpath import JsonPath
>>> expr = "$.store.book[?(@.price < 10)]"
>>> JsonPath(obj, expr).load()
        'category':'reference',
        'author':'Nigel Rees',
        'title':'Sayings of the Century',
        'price':8.95
        'category':'fiction',
        'author':'Herman Melville',
        'title':'Moby Dick',
        'isbn':'0-553-21311-3',
        'price':8.99

更多jsonpath语法请看jsonpath文档

pyjsonpath源码: https://github.com/hitplum/pyjsonpath

names of created variables :接收值的变量 json path: json path表达式 match no:0随机;n取第几个匹配值;-1匹配所有,后续引用用 变量_N 取第N个值。 default values: 缺省值,匹配不到值的时候取该值 match no 为-1时可以取出所有符合条件的值 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210510171801164.png?x-oss-process=image/waterm
jMESPATH是一种用于查询和操作JSON文本数据的语言和库。它的语法和操作类似于XPath和SQL,但是专门用于JSON格式的数据,可以从JSON文档中提取和转换元素。它支持过滤、投影、排序等操作,类似于SQL语言。 JMESPath语言以ABNF语法和完整规范描述。这确保了语言语法的精确定义。 兼容性测试 JMESPath有一整套数据驱动的测试用例。这样可以确保多个库的功能相同,使开发人员能够在他们选择的语言中实现 JMESPath 。 每个JMESPath库都通过了一整套符合性测
本文实例讲述了pythonjson中方法及jsonpath模块用法。分享给大家供大家参考,具体如下: 什么是json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。 json模块中方法的学习 其中类文件对象的理解: 具有read()或者write()方法的对象就是类文件对象,比如f = open(“a.txt”,”r”) f就是类文件对象 具体使用方法: #json.dumps 实现python类型转化为json
标准的jsonjson字符串)的格式为: {“key”:“value”} {“key”:“value”,“key1”:“value1”,…,“keyN”:“valueN”} value可以是普通的字符串、数字、布尔变量(true、false)、数组、Json对象。 ·JsonPath语法详解: 基本操作符 $ 根节点 @ 当前节点,一般来说用于子表达式或者过滤表达式。 . 或 [] 连接父子节点 .. 深层扫描,用于获取当前节点下的所有指定对象。 * 通配符 [<number&g
PythonJsonPath的使用JsonPathJsonPath语法规则PythonJsonPath模块的运用 JsonPath JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。 Json示例数据: "store": { "book": [
在数据处理或者自动化测试过程中需要对返回的json数据作校验,针对json数据中的单个或多个key进行校验,此时就需要获取json或字典中任意key的value值 数据如下: data = { "duringTime": 401, "timesPerDay": 10000, "device":{ "appid":1, "appName":...
这条指令是用来安装一些与 SELinux 相关的 Python 模块的。具体的安装方法取决于你使用的操作系统和包管理器。 如果你使用的是 CentOS 或者 RHEL 系统,可以使用以下命令来安装这些模块: sudo yum install -y python3-libselinux policycoreutils-python-utils 这将安装 Python 3 版本的 SELinux 模块以及一些 SELinux 相关的工具。如果你使用的是 Python 2.x 版本,可以将上面的命令中的“python3-libselinux”替换为“python-libselinux”即可。 如果你使用的是 Ubuntu 或者 Debian 系统,可以使用以下命令来安装这些模块: sudo apt-get update sudo apt-get install -y python3-selinux policycoreutils-python-utils 这将安装 Python 3 版本的 SELinux 模块以及一些 SELinux 相关的工具。如果你使用的是 Python 2.x 版本,可以将上面的命令中的“python3-selinux”替换为“python-selinux”即可。
Docker MySql报2059错误: Authentication plugin 'caching_sha2_password' cannot be loaded weixin_52473880:
 
推荐文章