jsonpath-rw处理json对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了jsonpath-rw处理json对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2402字,纯文字阅读大概需要4分钟。
内容图文
接口自动化测试中,存在依赖情况: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‘]
官方实例
1.提取值
result = [match.value for match in jsonpath_expr.find({‘foo‘:[{‘baz‘:1}, {‘baz‘:2}]})] print(result) >>>[1, 2]
2.获取匹配值对应的路径
from jsonpath_rw import jsonpath,parse jsonpath_expr = parse(‘foo[*].baz‘) result = [str(match.full_path) for match in jsonpath_expr.find({‘foo‘: [{‘baz‘: 1}, {‘baz‘: 2}]})] print(result) >>>[‘foo.[0].baz‘, ‘foo.[1].baz‘]
3.自动提供id
from jsonpath_rw import jsonpath,parse result = [match.value for match in parse(‘foo[*].id‘).find({‘foo‘: [{‘id‘: ‘bizzle‘}, {‘baz‘: 3}]})] print(result) >>>[‘bizzle‘] jsonpath.auto_id_field = ‘id‘ result = [match.value for match in parse(‘foo[*].id‘).find({‘foo‘: [{‘id‘: ‘bizzle‘}, {‘baz‘: 3}]})] print(result) >>>[‘foo.bizzle‘, ‘foo.[1]‘]
4.扩展功能之一 命名操作符 `parent`
result = [match.value for match in parse(‘a.*.b.`parent`.c‘).find({‘a‘: {‘x‘: {‘b‘: 1, ‘c‘: ‘number one‘}, ‘y‘: {‘b‘: 2, ‘c‘: ‘number two‘}}})] print(result) >>>[‘number one‘, ‘number two‘]
原文:https://www.cnblogs.com/DeryKong/p/12983400.html
内容总结
以上是互联网集市为您收集整理的jsonpath-rw处理json对象全部内容,希望文章能够帮你解决jsonpath-rw处理json对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。