MCPcopy Index your code
hub / github.com/dataease/SQLBot / format_pd_data

Method format_pd_data

backend/common/utils/data_format.py:146–182  ·  view source on GitHub ↗
(column_list: list, data_list: list, col_formats: dict = None)

Source from the content-addressed store, hash-verified

144
145 @staticmethod
146 def format_pd_data(column_list: list, data_list: list, col_formats: dict = None):
147 # 预处理数据并记录每列的格式类型
148 # 格式类型:'text'(文本)、'number'(数字)、'default'(默认)
149 _fields_list = []
150
151 if col_formats is None:
152 col_formats = {}
153 for field_idx, field in enumerate(column_list):
154 _fields_list.append(field.name)
155 col_formats[field_idx] = 'default' # 默认不特殊处理
156
157 data = []
158
159 for _data in data_list:
160 _row = []
161 for field_idx, field in enumerate(column_list):
162 value = _data.get(field.value)
163 if value is not None:
164 # 检查是否为数字且需要特殊处理
165 if isinstance(value, (int, float)):
166 # 整数且超过15位 → 转字符串并标记为文本列
167 if isinstance(value, int) and len(str(abs(value))) > 15:
168 value = str(value)
169 col_formats[field_idx] = 'text'
170 # 小数且超过15位有效数字 → 转字符串并标记为文本列
171 elif isinstance(value, float):
172 decimal_str = format(value, '.16f').rstrip('0').rstrip('.')
173 if len(decimal_str) > 15:
174 value = str(value)
175 col_formats[field_idx] = 'text'
176 # 其他数字列标记为数字格式(避免科学记数法)
177 elif col_formats[field_idx] != 'text':
178 col_formats[field_idx] = 'number'
179 _row.append(value)
180 data.append(_row)
181
182 return data, _fields_list, col_formats

Callers

nothing calls this directly

Calls 3

formatFunction · 0.85
getMethod · 0.65
appendMethod · 0.45

Tested by

no test coverage detected