python处理jsonpath_【Python3】jsonpath-rw处理Json对象

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

1.下载安装

pip install jsonpath-rw

2.导入

from jsonpath_rw import jsonpath,parse

3.例子介绍

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

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=, 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=, 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,我们要获取特定的值

jsonpath_expr = parse('foo[*].baz')

data = {'foo': [{'baz': 'news'}, {'baz': 'music'}]}

print([match.value for match in jsonpath_expr.find(data)][0])

运行结果:

news

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python jsonpath_rw 是一个用于解析 JSON 数据的库。它提供了一种方便的方式来使用 JSONPath 表达式来查询和过滤 JSON 数据。 JSONPath 是一种类似于 XPath 的查询语言,用于从 JSON 数据提取特定的值或对象jsonpath_rw 库提供了一套 API,使你可以使用 JSONPath 表达式来过滤和操作 JSON 数据。 要使用 jsonpath_rw,首先需要安装它。你可以使用 pip 命令来安装: ``` pip install jsonpath-rw ``` 安装完成后,你可以在 Python 代码导入 `jsonpath_rw` 模块,并使用它来查询和过滤 JSON 数据。 下面是一个简单的示例,展示了如何使用 jsonpath_rw 来查询 JSON 数据: ```python from jsonpath_rw import jsonpath, parse data = { "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 } ], "bicycle": { "color": "red", "price": 19.95 } } } # 创建一个 JSONPath 表达式对象 expr = parse("$.store.book[0].author") # 使用表达式对象来查询数据 matches = [match.value for match in expr.find(data)] print(matches) # 输出: ['Nigel Rees'] ``` 在上面的示例,我们创建了一个 JSONPath 表达式对象 `expr`,并使用它来查询 JSON 数据的作者名字。最后,我们通过遍历匹配结果列表,取出具体的值进行打印。 你可以使用不同的 JSONPath 表达式来提取你需要的数据。更多关于 jsonpath_rw 库的使用方法和示例,请参考官方文档和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值