python-jsonpath 解析神器
前言
jsonpath用来解析json数据使用的,是一种简单的方法来提取给定JSON文档的部分内容。JsonPath有许多编程语言,如Javascript,Python和PHP,Java。
JsonPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容。下面我把官网介绍的每个表达式用代码实现,可以更直观的知道该怎么用它。
环境安装
jsonpath是第三方模块,想要额外安装
pip install jsonpath
jsonpath语法规则
Xpath |
JSONPath |
描述 |
---|---|---|
/ |
$ |
跟节点 |
. |
@ |
现行节点 |
/ |
. or [] |
取子节点 |
.. |
n/a |
取父节点 JsonPath不支持 |
// |
.. |
相对节点 就是不管位置,选择所有符合条件的条件 |
* |
* |
匹配所有元素节点 |
[] |
[] |
迭代器标示(可以在里面做简单的迭代操作,如数组下标,根据内容选值等) |
| |
[,] |
支持迭代器中做多选 |
[] |
?() |
支持过滤操作 |
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.6python.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
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。
- 1015: [JSOI2008]星球大战starwar
- Tyvj P1813 [JSOI2008]海战训练
- 1820: [JSOI2010]Express Service 快递服务
- 3038: 上帝造题的七分钟2
- 1854: [Scoi2010]游戏
- Javascript字符串
- Codevs3278[NOIP2013]货车运输
- 关于使用lazytag的线段树两种查询方式的比较研究
- Java 持久化操作之 --XML
- 算法模板——splay区间反转 1
- 3223: Tyvj 1729 文艺平衡树
- 1212: [HNOI2004]L语言
- POJ 2942Knights of the Round Table(tarjan求点双+二分图染色)
- 算法模板——平衡树Treap
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法