← 返回题库
初级

生成认证事件审计日志

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd, json
    keys_csv = open_url("https://data.zuihe.com/dbd/ms-iot/state_02/device_keys.csv").read()
    tokens_csv = open_url("https://data.zuihe.com/dbd/ms-iot/state_02/device_tokens.csv").read()
    keys = pd.read_csv(StringIO(keys_csv))
    tokens = pd.read_csv(StringIO(tokens_csv))
    def auth_event(device_id, event_type, result, timestamp):
        return json.dumps({'device_id':device_id,'event':event_type,'result':result,'ts':timestamp})
    events = []
    for _, k in keys.iterrows():
        evt = 'key_verified' if k['is_active'] else 'key_inactive'
        events.append(auth_event(k['device_id'], evt, 'ok' if k['is_active'] else 'rejected', 1748736000))
    revoked = tokens[tokens['is_revoked']==1]
    for _, t in revoked.iterrows():
        events.append(auth_event(t['device_id'], 'token_revoked', 'revoked', t['issued_at']))
    print(f"认证事件数: {len(events)}")
    for e in events[:5]: print(e)

示例

输入
solve()
期望输出
认证事件数: 11
{"device_id": "DEV001", "event": "key_verified", "result": "ok", "ts": 1748736000}
{"device_id": "DEV002", "event": "key_verified", "result": "ok", "ts": 1748736000}
{"device_id": "DEV003", "event": "key_verified", "result": "ok", "ts": 1748736000}
{"device_id": "DEV004", "event": "key_verified", "result": "ok", "ts": 1748736000}
{"device_id": "DEV005", "event": "key_verified", "result": "ok", "ts": 1748736000}
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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