From 54354f1754cd080903ab38d93583b1b3161e2c3f Mon Sep 17 00:00:00 2001 From: SXP-Simon Date: Fri, 10 Oct 2025 17:06:44 +0800 Subject: [PATCH] =?UTF-8?q?[debug]=20=E7=A1=AE=E4=BF=9Dsender=E6=98=AF?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E7=B1=BB=E5=9E=8B=EF=BC=8C=E9=81=BF=E5=85=8D?= =?UTF-8?q?'str'=20object=20has=20no=20attribute=20'get'=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/analysis/analyzers/topic_analyzer.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/analysis/analyzers/topic_analyzer.py b/src/analysis/analyzers/topic_analyzer.py index cf439ad..7c7c5d0 100644 --- a/src/analysis/analyzers/topic_analyzer.py +++ b/src/analysis/analyzers/topic_analyzer.py @@ -64,6 +64,11 @@ class TopicAnalyzer(BaseAnalyzer): try: sender = msg.get("sender", {}) + # 确保sender是字典类型,避免'str' object has no attribute 'get'错误 + if not isinstance(sender, dict): + logger.warning(f"build_prompt 跳过sender非字典类型的消息: {type(sender)} - {sender}") + continue + nickname = sender.get("nickname", "") or sender.get("card", "") msg_time = datetime.fromtimestamp(msg.get("time", 0)).strftime("%H:%M") @@ -239,6 +244,11 @@ class TopicAnalyzer(BaseAnalyzer): try: sender = msg.get("sender", {}) + # 确保sender是字典类型,避免'str' object has no attribute 'get'错误 + if not isinstance(sender, dict): + logger.warning(f"extract_text_messages 跳过sender非字典类型的消息: {type(sender)} - {sender}") + continue + nickname = sender.get("nickname", "") or sender.get("card", "") msg_time = datetime.fromtimestamp(msg.get("time", 0)).strftime("%H:%M")