【基础】jsonpath

ops/2024/11/29 18:06:47/

https://jsonpath.com/

背景:
处理多层嵌套,比较复杂,这时候某个json字段吸比较麻烦,此时,吸使用jsonpath来处理这类工作场景。

在这里插入图片描述
安装

python">pip install jsonpath
python">import jsonpathrelation = [{'id': 1, 'label': 'a1', 'children': [], "age": 20},{'id': 2, 'label': 'a2', 'children': [{'id': 3, 'label': 'a3','children': [{'id': 4, 'label': 'a4', 'children': []},{'id': 5, 'label': 'a5','children': [{'id': 7, 'label': 'a7', 'children': []},{'id': 8, 'label': 'a8','children': []}]}]},{'id': 6, 'label': 'a6', 'children': []}]}]# 嵌套n层也能取到所有标签信息,$表示最外层的{},..表示模糊匹配
# 查找顺序,第一个 > 第一个的子节点,直到没有。
res1 = jsonpath.jsonpath(relation, '$..label')  # ['a1', 'a2', 'a3', 'a4', 'a5', 'a7', 'a8', 'a6']
res2 = jsonpath.jsonpath(relation, '$..id')  # [1, 2, 3, 4, 5, 7, 8, 6]
res3 = jsonpath.jsonpath(relation, '*.id')  # [1, 2]  匹配所有元素节点
print(res1)
print(res2)
print(res3)# 如果不存在匹配的结果,则返回 False
res4 = jsonpath.jsonpath(relation, '$..name')
print(res4)# 如果只匹配出单个结果,依然会放入一个列表
res5 = jsonpath.jsonpath(relation, '$..age')  # [20]
print(res5)# 取某个数据的原始方法:通过查找字典中的key以及list方法中的下标索引
res6 = relation[1]["children"][0]["children"][1]["label"]
print(res6)  # a5

http://www.ppmy.cn/ops/137708.html

相关文章

C++中智能指针的使用及其原理 -- RAII,内存泄漏,shared_ptr,unique_ptr,weak_ptr

目录 1.智能指针的使用场景分析 2.RAII和智能指针的设计思路 3.C标准库智能指针的使用 4.智能指针的原理以及模拟实现 5.shared_ptr循环引用问题和weak_ptr 5.1shared_ptr循环引用问题 5.2weak_ptr的原理和部分接口 5.3weak_ptr的简单模拟实现 6. shared_ptr的线程安…

Tülu 3:重新定义开源大模型的后训练范式

一、引言 在大型语言模型(LLM)的发展历程中,预训练阶段往往受到最多关注,动辄需要数百万美元算力投入和数万亿token的训练数据。然而,一个鲜为人知但同样关键的事实是:预训练完成的模型实际上并不能直接投…

Modern Effective C++ item 15:尽可能的使用constexpr

constexpr表达式/对象/函数 constexpr表达式值不会改变并且在编译过程就能得到计算结果的表达式。声明为constexpr的变量一定是一个const变量,而且必须用常量表达式初始化: constexpr int mf 20; //20是常量表达式 constexpr int limit mf 1;// mf 1是常量表…

(超详细图文详情)Navicat 配置连接 Oracle

1、下载依赖文件 Oracle官网下载直链:https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html 夸克网盘下载(oracle19c版本):https://pan.quark.cn/s/5061e690debc 官网下载选择对应 Oracle 版…

Spring Boot教程之十二: Spring – RestTemplate

Spring – RestTemplate 由于流量大和快速访问服务,REST API越来越受欢迎。REST 不是一种协议或标准方式,而是一组架构约束。它也被称为 RESTful API 或 Web API。当发出客户端请求时,它只是通过 HTTP 将资源状态的表示传输给请求者或端点。传…

网络原理(一)—— http

什么是 http http 是一个应用层协议,全称为“超文本传输协议”。 http 自 1991 年诞生,目前已经发展为最主流使用的一种应用层协议。 HTTP 往往基于传输层的 TCP 协议实现的,例如 http1.0,http1.0,http2.0 http3 是…

霍夫变换:原理剖析与 OpenCV 应用实例

简介:本文围绕霍夫变换相关内容展开,先是讲解霍夫变换基本原理,包含从 xy 坐标系到 kb 坐标系及极坐标系的映射等。接着介绍了 cv2.HoughLines、cv2.HoughLinesP 概率霍夫变换、cv2.HoughCircles 霍夫圆变换的函数用法、参数含义、与常规霍夫…

基于java web的网上书店系统设计

摘 要 随着互联网的越发普及,网上购物成为了当下流行的热门行为。网络上开店创业有许多的优势:投入少,启动 资金低,交易便捷。网上书店与传统的线下书店比起来优势巨大,网上书店的经营方式和销售渠道是不同与线下书 店…