(origin_data: list[dict])
| 196 | |
| 197 | |
| 198 | def format_json_list_data(origin_data: list[dict]): |
| 199 | data = [] |
| 200 | for _data in origin_data if origin_data else []: |
| 201 | _row = {} |
| 202 | for key, value in _data.items(): |
| 203 | if value is not None: |
| 204 | # 检查是否为数字且需要特殊处理 |
| 205 | if isinstance(value, (int, float)): |
| 206 | # 整数且超过15位 → 转字符串并标记为文本列 |
| 207 | if isinstance(value, int) and len(str(abs(value))) > 15: |
| 208 | value = str(value) |
| 209 | # 小数且超过15位有效数字 → 转字符串并标记为文本列 |
| 210 | elif isinstance(value, float): |
| 211 | decimal_str = str(Decimal(str(value))).rstrip('0').rstrip('.') |
| 212 | if len(decimal_str) > 15: |
| 213 | value = str(value) |
| 214 | _row[key] = value |
| 215 | data.append(DataFormat.normalize_qualified_sql_column_keys(_row)) |
| 216 | |
| 217 | return data |
| 218 | |
| 219 | |
| 220 | def get_chat_chart_config(session: SessionDep, chat_record_id: int): |
no test coverage detected