初级
实现结构化日志格式化
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
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"}
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199