update ui

This commit is contained in:
2025-11-14 15:14:23 +08:00
parent f72b52000c
commit 8315aac4d9

32
app.py
View File

@@ -68,6 +68,17 @@ def load_trading_days():
print(f"加载交易日数据失败: {e}") print(f"加载交易日数据失败: {e}")
def row_to_dict(row):
"""
将 SQLAlchemy Row 对象转换为字典
兼容 SQLAlchemy 1.4+ 版本
"""
if row is None:
return None
# 使用 _mapping 属性来访问列数据
return dict(row._mapping)
def get_trading_day_near_date(target_date): def get_trading_day_near_date(target_date):
""" """
获取距离目标日期最近的交易日 获取距离目标日期最近的交易日
@@ -5642,7 +5653,8 @@ def get_stock_basic_info(stock_code):
# 转换为字典 # 转换为字典
basic_info = {} basic_info = {}
for key, value in zip(result.keys(), result): result_dict = row_to_dict(result)
for key, value in result_dict.items():
if isinstance(value, datetime): if isinstance(value, datetime):
basic_info[key] = value.strftime('%Y-%m-%d') basic_info[key] = value.strftime('%Y-%m-%d')
elif isinstance(value, Decimal): elif isinstance(value, Decimal):
@@ -5685,7 +5697,7 @@ def get_stock_announcements(stock_code):
announcements = [] announcements = []
for row in result: for row in result:
announcement = {} announcement = {}
for key, value in zip(row.keys(), row): for key, value in row_to_dict(row).items():
if value is None: if value is None:
announcement[key] = None announcement[key] = None
elif isinstance(value, datetime): elif isinstance(value, datetime):
@@ -5734,7 +5746,7 @@ def get_stock_disclosure_schedule(stock_code):
schedules = [] schedules = []
for row in result: for row in result:
schedule = {} schedule = {}
for key, value in zip(row.keys(), row): for key, value in row_to_dict(row).items():
if value is None: if value is None:
schedule[key] = None schedule[key] = None
elif isinstance(value, datetime): elif isinstance(value, datetime):
@@ -5815,7 +5827,7 @@ def get_stock_actual_control(stock_code):
control_info = [] control_info = []
for row in result: for row in result:
control_record = {} control_record = {}
for key, value in zip(row.keys(), row): for key, value in row_to_dict(row).items():
if value is None: if value is None:
control_record[key] = None control_record[key] = None
elif isinstance(value, datetime): elif isinstance(value, datetime):
@@ -5864,7 +5876,7 @@ def get_stock_concentration(stock_code):
concentration_info = [] concentration_info = []
for row in result: for row in result:
concentration_record = {} concentration_record = {}
for key, value in zip(row.keys(), row): for key, value in row_to_dict(row).items():
if value is None: if value is None:
concentration_record[key] = None concentration_record[key] = None
elif isinstance(value, datetime): elif isinstance(value, datetime):
@@ -5933,7 +5945,7 @@ def get_stock_management(stock_code):
management_info = [] management_info = []
for row in result: for row in result:
management_record = {} management_record = {}
for key, value in zip(row.keys(), row): for key, value in row_to_dict(row).items():
if value is None: if value is None:
management_record[key] = None management_record[key] = None
elif isinstance(value, datetime): elif isinstance(value, datetime):
@@ -5992,7 +6004,7 @@ def get_stock_top_circulation_shareholders(stock_code):
shareholders_info = [] shareholders_info = []
for row in result: for row in result:
shareholder_record = {} shareholder_record = {}
for key, value in zip(row.keys(), row): for key, value in row_to_dict(row).items():
if value is None: if value is None:
shareholder_record[key] = None shareholder_record[key] = None
elif isinstance(value, datetime): elif isinstance(value, datetime):
@@ -6051,7 +6063,7 @@ def get_stock_top_shareholders(stock_code):
shareholders_info = [] shareholders_info = []
for row in result: for row in result:
shareholder_record = {} shareholder_record = {}
for key, value in zip(row.keys(), row): for key, value in row_to_dict(row).items():
if value is None: if value is None:
shareholder_record[key] = None shareholder_record[key] = None
elif isinstance(value, datetime): elif isinstance(value, datetime):
@@ -6102,7 +6114,7 @@ def get_stock_branches(stock_code):
branches_info = [] branches_info = []
for row in result: for row in result:
branch_record = {} branch_record = {}
for key, value in zip(row.keys(), row): for key, value in row_to_dict(row).items():
if value is None: if value is None:
branch_record[key] = None branch_record[key] = None
elif isinstance(value, datetime): elif isinstance(value, datetime):
@@ -6169,7 +6181,7 @@ def get_stock_patents(stock_code):
patents_info = [] patents_info = []
for row in result: for row in result:
patent_record = {} patent_record = {}
for key, value in zip(row.keys(), row): for key, value in row_to_dict(row).items():
if value is None: if value is None:
patent_record[key] = None patent_record[key] = None
elif isinstance(value, datetime): elif isinstance(value, datetime):