From ac362fc9ac0e8a75aac8c04336926be198565a47 Mon Sep 17 00:00:00 2001 From: lele555 <3583165504@qq.com> Date: Sat, 3 Oct 2026 07:57:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20q1/main.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit q1 题 main.py --- q1/main.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 q1/main.py 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