From 2a18beb8a10dc1f81758d93bb12bee0f1ea10fb1 Mon Sep 17 00:00:00 2001 From: sophon Date: Tue, 4 Nov 2025 11:13:36 +0800 Subject: [PATCH] modify scripts --- src/em_reports/fetch.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/em_reports/fetch.py b/src/em_reports/fetch.py index 3e406d8..5609627 100644 --- a/src/em_reports/fetch.py +++ b/src/em_reports/fetch.py @@ -92,12 +92,16 @@ def fetch_reports_list_general(fetch_func, table_name, s_date, e_date, data_dir_ row['stockName'] = '' if 'stockCode' not in row or row['stockCode'] is None or row['stockCode']=='': row['stockCode'] = '' - if 'newPeIssueA' in row: - try: - row['newPeIssueA'] = float(row.get('newPeIssueA', 0)) - except ValueError: - row['newPeIssueA'] = 0.0 - + + # float 类型的字段,进行转换, 并检查类型是否一致,避免插入数据库失败 + float_fields = ['newIssuePrice', 'newPeIssueA'] + for field in float_fields: + if field in row: + try: + row[field] = float(row.get(field, 0)) + except (ValueError, TypeError): + row[field] = 0.0 + # 对超长的 author 和 researcher 字段进行截断,避免数据库插入失败, 最大长度为250个字符 if 'author' in row and row['author'] is not None: if len(row['author']) > 250: