前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python-jsonpath 解析神器

python-jsonpath 解析神器

作者头像
wencheng
发布2020-10-22 10:22:09
1.4K1
发布2020-10-22 10:22:09
举报

前言

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使用示例

代码语言:javascript
复制
"""
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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自动化测试 To share 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档