fix(stats): get_stats() 改用 .get() 访问字段
- 使用 .get() 安全访问 event 字段 - 为可能缺失的字段提供默认值 - 防止 KeyError 异常
This commit is contained in:
@@ -149,15 +149,18 @@ def get_stats(mode: Optional[str] = None) -> Dict[str, Any]:
|
||||
}
|
||||
|
||||
if events:
|
||||
stats["first_event"] = events[0]["timestamp"]
|
||||
stats["last_event"] = events[-1]["timestamp"]
|
||||
stats["first_event"] = events[0].get("timestamp")
|
||||
stats["last_event"] = events[-1].get("timestamp")
|
||||
|
||||
for event in events:
|
||||
stats["events_by_type"][event["event_type"]] += 1
|
||||
stats["events_by_mode"][event["mode"]] += 1
|
||||
event_type = event.get("event_type", "unknown")
|
||||
event_mode = event.get("mode", "unknown")
|
||||
stats["events_by_type"][event_type] += 1
|
||||
stats["events_by_mode"][event_mode] += 1
|
||||
|
||||
# 按日期统计
|
||||
date = event["timestamp"][:10] # YYYY-MM-DD
|
||||
timestamp = event.get("timestamp", "")
|
||||
date = timestamp[:10] if timestamp else "unknown" # YYYY-MM-DD
|
||||
stats["events_by_date"][date] += 1
|
||||
|
||||
# 转换 defaultdict 为普通 dict
|
||||
|
||||
Reference in New Issue
Block a user