jsonpath-rw处理json对象

接口自动化测试中,存在依赖情况:test_04的某个请求参数的值依赖test_03返回结果中的某个字段的数据,所以就需要拿到返回数据中特定字段的值。这里使用到python中的jsonpath-rw库

1、下载安装

pip install jsonpath-rw

2、导入

from jsonpath_rw import jsonpath,parse

3、例子介绍

1.返回的match数据

jsonpath_expr = parse('addCar.product')
data = {'addCar':{'product': [{'id': '1','price':'38'}, {'id': '32','price':'19'}]}}
print([match for match in jsonpath_expr.find(data)])

运行结果:[DatumInContext(value=[{'id': '1', 'price': '38'}, {'id': '32', 'price': '19'}], path=Fields('product'), context=DatumInContext(value={'product': [{'id': '1', 'price': '38'}, {'id': '32', 'price': '19'}]}, path=Fields('addCar'), context=DatumInContext(value={'addCar': {'product': [{'id': '1', 'price': '38'}, {'id': '32', 'price': '19'}]}}, path=This(), context=None)))]

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

from jsonpath_rw import jsonpath,parse
data = {"addCar": {"product": [{"id": "1","price": "38"},{"id": "32", "price": "19"},]}}
jsonpath_expr = parse("addCar.product")
result = [match.value for match in jsonpath_expr.find(data)]
print(result)
运行结果: [[{'id': '1', 'price': '38'}, {'id': '32', 'price': '19'}]]

3.获取价格

from jsonpath_rw import jsonpath,parse

data = {"addCar": {"product": [{"id": "1","price": "38"},{"id": "32", "price": "19"},]}}
jsonpath_expr = parse("addCar.product[*].price")
result = [match.value for match in jsonpath_expr.find(data)]
print(result)
运行结果: ['38', '19']

猜你喜欢

转载自www.cnblogs.com/DeryKong/p/12983400.html