diff --git a/q1/main.py b/q1/main.py new file mode 100644 index 0000000..473725d --- /dev/null +++ b/q1/main.py @@ -0,0 +1,38 @@ +import json + +def analyze_log(filepath: str) -> dict: + result = { + "total": 0, + "by_level": {}, + "by_user": {}, + "last_error": None + } + try: + with open(filepath, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + if not line: + continue + try: + log_data = json.loads(line) + except json.JSONDecodeError: + continue + result["total"] += 1 + level = log_data.get("level") + if level: + result["by_level"][level] = result["by_level"].get(level, 0) + 1 + user = log_data.get("user") + if user: + result["by_user"][user] = result["by_user"].get(user, 0) + 1 + if level == "ERROR": + result["last_error"] = log_data.get("message") + except FileNotFoundError: + pass + return result + + +if __name__ == "__main__": + + res = analyze_log("app.jsonl") + print(res) + print("成功") \ No newline at end of file