← 返回题库
初级

验证上报设备是否已注册

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd, json
    payloads_csv = open_url("https://data.zuihe.com/dbd/ms-devhub/state_01/raw_payloads.csv").read()
    devs_csv = open_url("https://data.zuihe.com/dbd/ms-devhub/state_01/devices.csv").read()
    payloads = pd.read_csv(StringIO(payloads_csv))
    devs = pd.read_csv(StringIO(devs_csv))
    valid_ids = set(devs['device_id'])
    def check_registered(device_id):
        return device_id in valid_ids
    for _, row in payloads.iterrows():
        ok = check_registered(row['device_id'])
        flag = 'OK' if ok else '401 Unknown Device'
        print("id=" + str(row['id']) + " " + row['device_id'] + ": " + flag)

示例

输入
solve()
期望输出
id=1 RPI-001: OK
id=2 ARD-001: OK
id=3 ESP-001: OK
id=4 GW-001: OK
id=5 ESP-001: OK
id=6 RPI-002: OK
id=7 ARD-002: OK
id=8 RPI-001: OK
id=9 ARD-999: 401 Unknown Device
id=10 ARD-001: OK
id=11 ARD-002: OK
id=12 RPI-003: OK
id=13 RPI-002: OK
id=14 RPI-001: OK
id=15 ARD-002: OK
id=16 RPI-003: OK
id=17 RPI-003: OK
id=18 ARD-002: OK
id=19 RPI-003: OK
id=20 ARD-001: OK
id=21 RPI-002: OK
id=22 RPI-002: OK
id=23 ARD-001: OK
id=24 RPI-003: OK
id=25 RPI-001: OK
id=26 ARD-002: OK
id=27 RPI-003: OK
id=28 RPI-002: OK
id=29 RPI-003: OK
id=30 RPI-003: OK
id=31 RPI-003: OK
id=32 RPI-001: OK
id=33 RPI-002: OK
id=34 RPI-002: OK
id=35 ARD-002: OK
id=36 RPI-002: OK
id=37 RPI-002: OK
id=38 RPI-001: OK
id=39 ARD-002: OK
id=40 ARD-002: OK
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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