在Python中按IP地址聚合重复JSON数据并构建键值对
按IP地址聚合计算机信息数组的解决方案
实现思路
先通过临时对象按IP_Address对条目分组,再将分组结果转换为{ip, data}结构的数组。
代码实现(JavaScript)
const input = [ { "name": "computera", "Computer_Name": "computera", "Serial_Number": "computera", "IP_Address": "8.8.8.8" }, { "name": "computerb", "Computer_Name": "computerb", "Serial_Number": "computerb", "IP_Address": "8.8.8.8" }, { "name": "computerc", "Computer_Name": "computerc", "Serial_Number": "computerc", "IP_Address": "1.2.3.4" } ]; // 按IP地址分组 const ipMap = {}; input.forEach(item => { const ip = item.IP_Address; if (!ipMap[ip]) { ipMap[ip] = []; } ipMap[ip].push(item); }); // 转换为目标格式 const output = Object.entries(ipMap).map(([ip, data]) => ({ ip, data })); // 打印结果 console.log(JSON.stringify(output, null, 2));
输出结果
以下是符合JSON规范的输出结构(你给出的期望输出是两个独立对象,这里用数组包裹更符合标准):
[ { "ip": "8.8.8.8", "data": [ { "name": "computera", "Computer_Name": "computera", "Serial_Number": "computera", "IP_Address": "8.8.8.8" }, { "name": "computerb", "Computer_Name": "computerb", "Serial_Number": "computerb", "IP_Address": "8.8.8.8" } ] }, { "ip": "1.2.3.4", "data": [ { "name": "computerc", "Computer_Name": "computerc", "Serial_Number": "computerc", "IP_Address": "1.2.3.4" } ] } ]
内容的提问来源于stack exchange,提问作者mo1090
相关产品推荐
相关产品推荐

