欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > 【基础】jsonpath

【基础】jsonpath

2025/2/14 3:50:08 来源:https://blog.csdn.net/weixin_46162002/article/details/144028800  浏览:    关键词:【基础】jsonpath

https://jsonpath.com/

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

在这里插入图片描述
安装

pip install jsonpath
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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com