专栏首页python 自动化测试python-jsonpath 解析神器

python-jsonpath 解析神器

前言

jsonpath用来解析json数据使用的,是一种简单的方法来提取给定JSON文档的部分内容。JsonPath有许多编程语言,如Javascript,Python和PHP,Java。

JsonPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容。下面我把官网介绍的每个表达式用代码实现,可以更直观的知道该怎么用它。

环境安装

jsonpath是第三方模块,想要额外安装

pip install jsonpath

jsonpath语法规则

Xpath

JSONPath

描述

/

$

跟节点

.

@

现行节点

/

. or []

取子节点

..

n/a

取父节点 JsonPath不支持

//

..

相对节点 就是不管位置,选择所有符合条件的条件

*

*

匹配所有元素节点

[]

[]

迭代器标示(可以在里面做简单的迭代操作,如数组下标,根据内容选值等)

&#124

[,]

支持迭代器中做多选

[]

?()

支持过滤操作

n/a

()

支持表达式计算

()

n/a

分组,JsonPath不支持

jsonpath使用示例

"""
Create by dell on 2020/10/4
作者 :wencheng
微信公众:自动化测试 To share
"""
import jsonpath

jsonobj = {
    "code": 0,
    "msg": "success",
    "data": {
        "output": [
            {
                "id": "867899031136606",
                "prediction": 0.698744767973,
                "instances": []
            },
            {
                "id": "867899031133728",
                "prediction": 0.695468634754,
                "instances": []
            }
        ]
    }
}
msg = jsonpath.jsonpath(jsonobj, '$.msg')
print("msg:%s" % msg)
print("================================")

data = jsonpath.jsonpath(jsonobj, '$.data')
print("data:%s" % data)
print("================================")

output = jsonpath.jsonpath(jsonobj, '$..output')
print("output:%s" % output)
print("================================")
id = jsonpath.jsonpath(jsonobj, '$...id')
print("id:%s" % id)

执行结果:

C:\python3.6\python.exe E:/Gitwokspace/Daily_py/Fileprocessing/test/jsonpath11.py

msg:['success']

================================

data:[{'output': [{'id': '867899031136606', 'prediction': 0.698744767973, 'instances': []}, {'id': '867899031133728', 'prediction': 0.695468634754, 'instances': []}]}]

================================

output:[[{'id': '867899031136606', 'prediction': 0.698744767973, 'instances': []}, {'id': '867899031133728', 'prediction': 0.695468634754, 'instances': []}]]

================================

id:['867899031136606', '867899031133728']

Process finished with exit code 0

这里再为大家推荐几款比较实用的json在线工具供大家参考使用

在线JSON代码检验、检验、美化、格式化工具: http://tools.jb51.net/code/json

JSON在线格式化工具: http://tools.jb51.net/code/jsonformat

在线XML/JSON互相转换工具: http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具: http://tools.jb51.net/code/jsoncodeformat

在线json压缩/转义工具: http://tools.jb51.net/code/json_yasuo_trans

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。

本文分享自微信公众号 - 自动化测试 To share(gh_92d7607a3e04),作者:wencheng

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-10-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 移动端性能分析平台简直好用

    PerDog能做什么?移动端ios/android性能测试、可视化报告、快捷定位性能问题,提升app应该性能品质,手机无需root入狱 硬件无需任何修改即插即用...

    wencheng
  • 性能测试工具jmeter和locust比较

    Apache JMeter和Locust都是是最受欢迎的性能测试工具。当你想做性能测试的时候,你会选择什么样的测试工具呢?是会选择jmeter?locust?今...

    wencheng
  • Cypress 元素定位

    Cypress含有多种定位方式我们无需担心因为定位导致测试失败,Cypress有独一无二的定位策略能使你摆脱元素定位的噩梦。

    wencheng
  • 头条算法岗

    无论走到哪里,都应该记住,过去都是假的,回忆是一条没有尽头的路,一切以往的春天都不复存在,就连那最坚韧而又狂乱的爱情归根结底也不过是一种转瞬即逝的现实。——马尔...

    牛客网
  • 父子进程 父子线程 守护线程

    平凡的学生族
  • Redis持久化的两种方式RDB和AOF理解

    前面将了redis的主从复制以及怎么搭建,还介绍了哨兵模式以及哨兵模式的搭建。虽然操作跟上了,但是还是补一下redis的持久化。redis之所以这么流行,很大一...

    程序员爱酸奶
  • python技巧——Python的读文件

           read()函数是一次性的读入方式,读入的是文件的整个内容,并将其赋值给一个字符串。如:

    zhaozhiyong
  • python技巧——Python的读文件

    在Python中,读文件的命令有如下的三个: read() readline() readlines() 1、read()        read()函数是一次...

    zhaozhiyong
  • 机器学习逻辑回归:算法兑现为python代码

    0 回顾 昨天推送了逻辑回归的基本原理:从逻辑回归的目标任务,到二分类模型的构建,再到如何用梯度下降求出二分类模型的权重参数。今天,我们将对这个算法兑现为代码...

    double
  • Android开发笔记(五十九)巧用传感器

    传感器是Android用来感知周围环境以及运动信息的工具。因为具体的感应信息依赖于相关硬件,所以虽然Android提供了众多的感应器,但不是每部手机都能支持...

    用户4464237

扫码关注云+社区

领取腾讯云代金券