← 返回题库
中级

实现告警抑制与去重

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd
    alerts_csv = open_url(____).read()
    alerts = pd.read_csv(StringIO(____))
    DEDUP_WINDOW = ____
    def dedup_alerts(____):
        sorted_alerts = alerts_df.sort_values(____)
        seen = {}
        results = []
        for _, row in sorted_alerts.iterrows():
            key = f"____"
            last_ts = seen.get(____)
            if row['____'] - last_ts > window:
                results.append(____)
                seen[key] = row['____']
            else:
                results.append(____)
        return results
    results = dedup_alerts(____)
    fired = sum(____ for r in results if r['____']=='____')
    suppressed = sum(____ for r in results if r['____']=='____')
    print(____)
    for r in results:
        print(____)

示例

输入
solve()
期望输出
告警去重: fired=5, suppressed=0
  id=1 DEV004/vibration_rms: fired
  id=2 DEV008/pressure: fired
  id=3 DEV001/temperature: fired
  id=4 DEV007/temperature: fired
  id=5 DEV009/temperature: fired
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码