Python json解析库jsonpath原理及使用示例
作者:-零 时间:2022-05-18 09:43:00
jsonpath
jsonpath 用于多层嵌套 json格式的 解析。
pip install jsonpath
JsonPath | 描述 |
---|---|
$ | 根节点 |
@ | 现行节点 |
.or[] | 取子节点 |
n/a | 取父节点,jsonpath为支持 |
.. | 就是不管位置,选择所有复合条件的条件 |
* | 匹配所有元素节点 |
n/a | 根据属性访问,json不支持,因为json是个key-value递归结构,不需要数属性访问 |
[] | 迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等) |
[,] | 支持迭代器中做多选 |
?() | 支持过滤操作 |
() | 支持表达式计算 |
n/a | 分组,JsonPath不支持 |
jsonpath使用示例
book_dict = {
"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
}
}
}
JsonPath | Result |
---|---|
$.store.book[*].author | store中的所有的book作者 |
$…author | 所有的作者 |
$.store.* | store下的所有元素 |
$.store…price | store中的所有价钱 |
$…book[2] | 第三本书 |
$…book[(@.length-1)] | 最后一本书 |
$…book[0,1] | 取前两本书 |
$…book[?(@.isbn)] | 获取有jsbn的所有数 |
$…book[?(@.price<10)] | 获取价格大于10 |
$…* | 匹配所有数据 |
使用示例
$ 是查找的根节点,传参数是python的dict 类型,当查找到的时候返回一个list结果,查找失败的时候返回 False.
import jsonpath
result = {
"code": 0,
"data": [
{
"age": 20,
"create_time": "2019-09-15",
"id": 1,
"mail": "283340479@qq.com",
"name": "yoyo",
"sex": "M"
},
{
"age": 21,
"create_time": "2019-09-16",
"id": 2,
"mail": "123445@qq.com",
"name": "yoyo111",
"sex": "M"
}
],
"msg": "success!"
}
msg = jsonpath.jsonpath(result, '$.msg')
print(msg) # 输出结果 ['success!']
names = jsonpath.jsonpath(result, '$..name')
print(names) # 输出结果 ['yoyo', 'yoyo111']
no = jsonpath.jsonpath(result, '$..yoyo')
print(no) # 找不到是结果是 False
来源:https://www.cnblogs.com/-wenli/p/13993887.html
标签:Python,json,解析库,jsonpath
0
投稿
猜你喜欢
sqlserver 数据类型转换小实验
2024-01-15 06:00:21
基于python图像处理API的使用示例
2022-12-19 02:14:53
PHP PDOStatement::columnCount讲解
2023-06-04 22:24:39
HTML的优化杂记
2010-03-10 10:39:00
Python中 map()函数的用法详解
2021-03-25 08:16:44
用Django实现一个可运行的区块链应用
2022-07-17 22:26:31
SQL Server复制功能 巧妙选择避开Bug
2011-01-04 17:03:00
踩坑:pytorch中eval模式下结果远差于train模式介绍
2021-10-06 22:27:49
mysql中 datatime与timestamp的区别说明
2024-01-21 14:45:53
Python数据传输黏包问题
2023-04-21 13:05:22
Python使用正则表达式实现爬虫数据抽取
2021-01-22 15:00:24
Python Process多进程实现过程
2021-04-30 02:21:45
javascript获取select值的方法完整实例
2024-04-22 12:49:18
分析MongoDB和MySQL各自的关键特性、差别和优势
2024-01-23 16:23:30
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2023-03-02 01:33:01
Go 库性能分析工具pprof
2024-02-13 20:55:27
Golang中异常处理机制详解
2024-02-17 17:05:50
Sql学习第一天——SQL 练习题(建表/sql语句)
2024-01-22 05:44:39
SQL 外链接操作小结 inner join left join right join
2024-01-19 21:06:39
python识别围棋定位棋盘位置
2023-01-09 01:49:34