如何使用Rest Assured从API响应中按双条件过滤值
提取指定条件的JSON支出值实现方案
核心逻辑步骤
- 第一步:从API响应的JSON数据中定位到
key为xyhz的数组 - 第二步:遍历该数组,筛选出
channel字段等于Email的项 - 第三步:从筛选后的项中提取对应的支出值(假设支出字段名为
expense,请根据实际JSON结构调整)
示例JSON结构参考
假设你的API响应JSON结构如下:
{ "xyhz": [ {"channel": "Email", "expense": 100}, {"channel": "SMS", "expense": 50}, {"channel": "Email", "expense": 200} ], "other_channel_data": [...] }
Python 实现代码
import json # 模拟API响应的JSON字符串 api_response_str = ''' { "xyhz": [ {"channel": "Email", "expense": 100}, {"channel": "SMS", "expense": 50}, {"channel": "Email", "expense": 200} ] } ''' # 解析JSON为字典 data = json.loads(api_response_str) # 提取目标支出值,处理xyhz不存在的情况避免报错 email_expenses = [item["expense"] for item in data.get("xyhz", []) if item.get("channel") == "Email"] print(email_expenses) # 输出结果:[100, 200]
JavaScript 实现代码
// 模拟API响应的JSON对象 const apiResponse = { "xyhz": [ {"channel": "Email", "expense": 100}, {"channel": "SMS", "expense": 50}, {"channel": "Email", "expense": 200} ] }; // 提取目标支出值,处理xyhz不存在的情况避免报错 const emailExpenses = (apiResponse.xyhz || []).filter(item => item.channel === "Email").map(item => item.expense); console.log(emailExpenses); // 输出结果:[100, 200]
内容的提问来源于stack exchange,提问作者Adil Raza
相关产品推荐
相关产品推荐

