Python:jsonpath库介绍和使⽤
导⾔:⼀般场景下,我们使⽤Python的内置json库,就能完成⼤部分的解析和处理JSON格式。
Python内置库:
简介:JsonPath 对于 JSON 来说,相当于 XPath 对于 XML,⽤来解析多层嵌套的json数据;JsonPath 是⼀种信息抽取类库,是从JSON⽂档中抽取指定信息的⼯具,提供多种语⾔实现版本,包括:Javascript, Python, PHP 和 Java。
官⽅⽂档:
goessner/articles/JsonPath
pip安装:
pip install jsonpath
颜名称及样表 html版使⽤案例:
checkbox是否选中1、模糊匹配
2、不存在匹配的结果
lodash方法3、只匹配出单个结果
4、取某个数据的原始⽅法
import jsonpath
relation =[python解析json文件
{'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]
php后门代码生成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
遍历的顺序:深度优先遍历
PS1:⼆叉树的深度遍历
沿着树的深度遍历结点,尽可能深的搜索树的分⽀。如果当前的节点所在的边都被搜索过,就回溯到当前节点所在的那条边的起始节点。⼀直重复直到进⾏到发现源节点所有可达的节点为⽌。
:玩转测试开发
欢迎关注,共同进步,谢谢!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论