如何提取prf_loadtest类fqdn的agentid并生成动态请求数组?
实现方案:从JSON数据中过滤并转换指定结构数组
JavaScript/Node.js 实现
直接通过解析、过滤、转换三步完成需求:
// 原始JSON响应数据 const rawJson = `[{ "agentid": "9f235146-394d-3200-bff4-ff820c7cdb8e", "os": "", "fqdn": "prf_loadtest-54" }, { "agentid": "33777a51-8696-3c53-97ab-5944224ae5e4", "os": "", "fqdn": "prf_loadtest-389" }, { "agentid": "b6e859d0-2fb4-307d-b3b6-a6daa0b58fc2", "os": "", "fqdn": "server-13-35-77-127.bos50.r.cloudfront.net" } ]`; // 解析JSON字符串为可操作的数组 const agentList = JSON.parse(rawJson); // 过滤符合条件的条目并转换为目标结构 const result = agentList .filter(item => item.fqdn.startsWith("prf_loadtest")) .map(item => ({ key: item.agentid, value: "AD SERVER" })); // 输出结果 console.log(JSON.stringify(result, null, 2));
运行后会自动根据符合条件的agent数量生成对应长度的目标数组,完全适配动态场景。
Python 实现
用列表推导式简洁完成过滤与转换:
import json # 原始JSON响应数据 raw_json = '''[{ "agentid": "9f235146-394d-3200-bff4-ff820c7cdb8e", "os": "", "fqdn": "prf_loadtest-54" }, { "agentid": "33777a51-8696-3c53-97ab-5944224ae5e4", "os": "", "fqdn": "prf_loadtest-389" }, { "agentid": "b6e859d0-2fb4-307d-b3b6-a6daa0b58fc2", "os": "", "fqdn": "server-13-35-77-127.bos50.r.cloudfront.net" } ]''' # 解析JSON为列表 agent_list = json.loads(raw_json) # 过滤+转换一步完成 result = [ {"key": item["agentid"], "value": "AD SERVER"} for item in agent_list if item["fqdn"].startswith("prf_loadtest") ] # 格式化输出结果 print(json.dumps(result, indent=2))
核心逻辑说明
- 解析JSON:将原始JSON字符串转为编程语言可操作的数组/列表
- 过滤筛选:通过
startswith方法判断fqdn是否以prf_loadtest开头,保留符合条件的条目 - 结构映射:提取符合条件条目中的
agentid作为key,固定value为AD SERVER,生成目标结构数组
内容的提问来源于stack exchange,提问作者Ralph
相关产品推荐
相关产品推荐

