python3:jsonpath-rw处理Json对象

前提:接口自动化测试中,存在依赖状况:test_02的某个请求参数的值,须要依赖test_01返回结果中某个字段的数据,因此就先须要拿到返回数据中特定字段的值。这里使用到python中jsonpath-rw库python

1.下载安装json

pip install jsonpath-rw测试

2.导入jsonp

from jsonpath_rw import jsonpath,parsespa

3.例子介绍code

1.返回的match数据,但咱们想要的是value数据blog

jsonpath_expr = parse('foo[*].baz') data = {'foo': [{'baz': 'news'}, {'baz': 'music'}]} print([match for match in jsonpath_expr.find(data)]) 运行结果: [DatumInContext(value='news', path=Fields('baz'), context=DatumInContext(value={'baz': 'news'}, path=<jsonpath_rw.jsonpath.Index object at 0x025CA850>, context=DatumInContext(value=[{'baz': 'news'}, {'baz': 'music'}], path=Fields('foo'), context=DatumInContext(value={'foo': [{'baz': 'news'}, {'baz': 'music'}]}, path=This(), context=None)))), DatumInContext(value='music', path=Fields('baz'), context=DatumInContext(value={'baz': 'music'}, path=<jsonpath_rw.jsonpath.Index object at 0x025CA770>, context=DatumInContext(value=[{'baz': 'news'}, {'baz': 'music'}], path=Fields('foo'), context=DatumInContext(value={'foo': [{'baz': 'news'}, {'baz': 'music'}]}, path=This(), context=None))))]

2.获取匹配的数据match.value接口

jsonpath_expr = parse('foo[*].baz') data = {'foo': [{'baz': 'news'}, {'baz': 'music'}]} print([match.value for match in jsonpath_expr.find(data)])
运行结果:
['news', 'music']

3.match.value返回数据是一个list,咱们要获取特定的值ip

jsonpath_expr = parse('foo[*].baz') data = {'foo': [{'baz': 'news'}, {'baz': 'music'}]} print([match.value for match in jsonpath_expr.find(data)][0]) 运行结果: news
相关文章
相关标签/搜索