json解析库jsonpath
2023-09-14 08:56:56 时间
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
相关文章
- JWT(json web token)--.JwtBearer IdentityServer4--客户端凭证授权
- PHP如何自动识别第三方Restful API的内容,自动渲染成 json、xml、html、serialize、csv、php等数据
- 实例解析java + jQuery + json工作过程(获取JSON数据)
- Json字符串转换为java对象的各种实现方法【json_lib框架、Gson、org.json】
- JQuery处理json与ajax返回JSON实例
- Java 中的JSON 字符串
- Android解析JSON速度对比
- 在JavaScript中使用json.js:访问JSON编码的某个值
- JSON及与XML比较
- 在JavaScript中使用json.js:使得js数组转为JSON编码
- Asp中JSON的使用
- Spring MVC--接收JSON格式的数据
- [FAQ] PHP Warning: json_encode(): double INF does not conform to the JSON spec
- 基于 OData 模型和 JSON 模型的 SAP UI5 表格控件行项目的添加和删除实现
- 关于 Angular 工程文件 angular.json 里的 inlineCritical 属性
- 推荐一个谷歌浏览器插件json单独窗口格式化插件JSON-handle
- Flutter高级第2篇:JSON的序列化和反序列化、创建模型类转换Json数据
- JSON说明及使用,javascript,java如何解析及转化json
- Android sax解析json字符串
- PyTricks-json dumps优雅的输出字典
- JSON数据的处理中的特殊字符
- 022:vue+openlayers加载中国边界JSON数据(代码示例)
- Struts2之—集成Json插件实现Ajax
- 【python】解决json.dump(字典)时报错Object of type ‘float32‘ is not JSON serializable
- json 模块:处理 JSON 数据