← 返回题库
中级

实现单传感器上报频率限流

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd
    logs_csv = open_url(____).read()
    logs = pd.read_csv(StringIO(____))
    MIN_INTERVAL = ____
    last_upload = {}
    def check_rate_limit(____):
        last = last_upload.get(____)
        if last is not None and (____) < MIN_INTERVAL:
            return False, '____' + str(round(____)) + '____' + str(____) + '____'
        last_upload[device_id] = ts
        return True, '____'
    print(____)
    for _, row in logs.sort_values(____).head(____).iterrows():
        ok, msg = check_rate_limit(____)
        print("____"+row['____']+"____"+str(____)+"____"+msg)

示例

输入
solve()
期望输出
Rate limit (min_interval=300s=5min):
  SOIL-A02 ts=1748736000.0: ok
  SOIL-B01 ts=1748736000.0: ok
  SOIL-B01 ts=1748736030.0: too_frequent: 30.0s < 300.0s
  SOIL-B01 ts=1748736060.0: too_frequent: 60.0s < 300.0s
  SOIL-B01 ts=1748736090.0: too_frequent: 90.0s < 300.0s
  SOIL-B01 ts=1748736120.0: too_frequent: 120.0s < 300.0s
  SOIL-B01 ts=1748736150.0: too_frequent: 150.0s < 300.0s
  SOIL-B01 ts=1748736180.0: too_frequent: 180.0s < 300.0s
  SOIL-B01 ts=1748736210.0: too_frequent: 210.0s < 300.0s
  SOIL-B01 ts=1748736240.0: too_frequent: 240.0s < 300.0s
  SOIL-B01 ts=1748736270.0: too_frequent: 270.0s < 300.0s
  SOIL-A02 ts=1748736300.0: ok
  WS-001 ts=1748736600.0: ok
  WS-001 ts=1748736900.0: ok
  SOIL-A01 ts=1748737200.0: ok
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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