From 6a33fd534e363dbbb1154a077785bf9b080fbdb9 Mon Sep 17 00:00:00 2001 From: freedakgmail Date: Wed, 22 Jul 2026 07:38:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20market.py=20?= =?UTF-8?q?=E5=8C=97=E4=BA=A4=E6=89=80=E6=98=A0=E5=B0=84=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?=E5=92=8C=20analysis.py=203=E5=A4=84=E8=BF=9E=E6=8E=A5=E6=B3=84?= =?UTF-8?q?=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - market.py:488: 补充北交所(8/9开头)腾讯API代码映射 - analysis.py: ai_analyze_stream 获取数据 put_db 移到 finally,初始化 conn=None - analysis.py: ai_analyze_stream AI日志 put_db 移到 finally,初始化 _conn=None - analysis.py: ai_analyze 获取资金流向 put_db 移到 finally,初始化 conn=None --- stock-html/routes/analysis.py | 18 +++++++++++++----- stock-html/routes/market.py | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/stock-html/routes/analysis.py b/stock-html/routes/analysis.py index 65b0bdd..3b5dc33 100644 --- a/stock-html/routes/analysis.py +++ b/stock-html/routes/analysis.py @@ -340,6 +340,7 @@ def ai_analyze_stream(stock_code): stock_name = get_stock_name(stock_code) or stock_code # 获取资金流向和技术信号 + conn = None try: conn = get_db() if conn: @@ -384,12 +385,14 @@ def ai_analyze_stream(stock_code): stock_data['indicators'] = scan_row['indicators'] or {} stock_data['triggered_count'] = scan_row['triggered_count'] or 0 cur2.close() - - put_db(conn) except Exception as e: print(f"获取数据失败: {e}") - + finally: + if conn: + put_db(conn) + # 记录AI调用日志 + _conn = None try: from flask import session as _sess _uid = _sess.get('user_id') @@ -400,9 +403,11 @@ def ai_analyze_stream(stock_code): _cur.execute("INSERT INTO ai_call_log (user_id, stock_code, stock_name) VALUES (%s, %s, %s)", (_uid, stock_code, stock_name)) _conn.commit() - put_db(_conn) except Exception: pass + finally: + if _conn: + put_db(_conn) # 流式调用AI for chunk in analyze_stock_stream(stock_code, stock_name, stock_data): @@ -447,6 +452,7 @@ def ai_analyze(stock_code): stock_name = get_stock_name(stock_code) or stock_code # 获取近三日资金流向 + conn = None try: conn = get_db() if conn: @@ -468,9 +474,11 @@ def ai_analyze(stock_code): 'super_pct': float(row[3]) if row[3] else 0, }) stock_data['fund_flow_3days'] = fund_flow - put_db(conn) except Exception as e: print(f"获取资金流向失败: {e}") + finally: + if conn: + put_db(conn) # 调用AI分析 result = analyze_stock(stock_code, stock_name, stock_data) diff --git a/stock-html/routes/market.py b/stock-html/routes/market.py index f96e5a5..ed8aec3 100644 --- a/stock-html/routes/market.py +++ b/stock-html/routes/market.py @@ -485,7 +485,7 @@ def get_fundamental(stock_code): # 备用方案:先试腾讯API,再试akshare try: import requests as _rq - _tc = ('sh' if stock_code.startswith('6') else 'sz') + stock_code + _tc = ('sh' if stock_code.startswith('6') else 'bj' if stock_code.startswith(('8', '9')) else 'sz') + stock_code _rr = _rq.get(f'http://qt.gtimg.cn/q={_tc}', timeout=5, headers={'Referer': 'https://finance.qq.com'}) if _rr.status_code == 200 and '\"' in _rr.text: