← 返回题库
初级

实现结构化日志格式化

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    from io import StringIO
    request_logs_csv = open_url("https://data.zuihe.com/dbd/ms-shop/state_06/request_logs.csv").read()
    import pandas as pd, json
    from io import StringIO
    logs = pd.read_csv(StringIO(request_logs_csv))
    LEVELS = {200:'INFO', 201:'INFO', 400:'WARN', 401:'WARN', 403:'WARN', 404:'WARN', 500:'ERROR'}
    def format_log(row):
        level = LEVELS.get(int(row['status_code']), 'INFO')
        return json.dumps({
            'level': level,
            'timestamp': row['timestamp'],
            'service': 'api-gateway',
            'user_id': int(row['user_id']),
            'ip': row['ip'],
            'path': row['path'],
            'status_code': int(row['status_code']),
            'latency_ms': int(row['latency_ms']),
            'trace_id': f"trace-{int(row['id']):04d}",
        })
    for _, row in logs.head(5).iterrows():
        print(format_log(row))

示例

输入
solve()
期望输出
{"level": "INFO", "timestamp": 1748736002.341, "service": "api-gateway", "user_id": 2, "ip": "192.168.1.10", "path": "/api/v1/orders", "status_code": 200, "latency_ms": 135, "trace_id": "trace-0001"}
{"level": "WARN", "timestamp": 1748736003.423, "service": "api-gateway", "user_id": 2, "ip": "10.0.0.2", "path": "/api/v1/payments", "status_code": 400, "latency_ms": 26, "trace_id": "trace-0002"}
{"level": "INFO", "timestamp": 1748736005.285, "service": "api-gateway", "user_id": 1, "ip": "10.0.0.2", "path": "/api/v1/products", "status_code": 200, "latency_ms": 376, "trace_id": "trace-0003"}
{"level": "INFO", "timestamp": 1748736005.801, "service": "api-gateway", "user_id": 4, "ip": "10.0.0.1", "path": "/api/v1/search", "status_code": 200, "latency_ms": 152, "trace_id": "trace-0004"}
{"level": "INFO", "timestamp": 1748736008.694, "service": "api-gateway", "user_id": 3, "ip": "10.0.0.1", "path": "/api/v1/orders", "status_code": 200, "latency_ms": 152, "trace_id": "trace-0005"}
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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