如何将AlertConfiguration查询得到的多对象合并为单个Group对象返回
解决方案
你当前返回数组是因为使用了列表存储每一条告警的独立字典,只需要将存储结构改为字典,直接按alarm_name作为顶级键写入即可,同时建议兼容同一告警名称下多告警级别的合并场景,避免同名称告警被覆盖:
完整修改后代码
rows = {} for alert in AlertConfiguration.objects().all(): alarm_name = alert.alarm_name # 已存在的告警名称直接合并级别配置,不存在则初始化 if alarm_name not in rows: rows[alarm_name] = {} rows[alarm_name][alert.severity] = alert.value response = make_response(jsonify(rows), HTTPStatus.OK) return response
如果业务逻辑中同一个alarm_name只会对应唯一的severity,可以简化循环内逻辑:
rows = {} for alert in AlertConfiguration.objects().all(): rows[alert.alarm_name] = { alert.severity: alert.value }
修改后返回的就是以alarm_name为key的单个Group对象结构。
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

