优化数据处理逻辑,新增sanitize_data方法以转换NumPy类型为原生Python类型,修正数据保存格式
This commit is contained in:
@ -8,7 +8,7 @@ from PySide6.QtWidgets import QMessageBox, QWidget, QPushButton, QProgressBar, Q
|
||||
from func.utils.Constants import Constants
|
||||
from func.utils.CustomException import TipsTypeValueNotExistError, MsgBoxTypeValueNotExistError
|
||||
from func.utils.Result import Result
|
||||
|
||||
import numpy as np
|
||||
|
||||
class PublicFunc:
|
||||
|
||||
@ -307,4 +307,22 @@ class PublicFunc:
|
||||
for i in range(0, len(artifact), 4):
|
||||
unit_data = artifact[i:i + 4]
|
||||
if len(unit_data) < 4:
|
||||
break
|
||||
break
|
||||
|
||||
@staticmethod
|
||||
def sanitize_data(obj):
|
||||
"""
|
||||
递归将对象中的 NumPy 类型转换为 Python 原生类型
|
||||
"""
|
||||
if isinstance(obj, dict):
|
||||
return {k: PublicFunc._sanitize_data(v) for k, v in obj.items()}
|
||||
elif isinstance(obj, (list, tuple)):
|
||||
return [PublicFunc._sanitize_data(i) for i in obj]
|
||||
elif isinstance(obj, (np.integer, np.int64)):
|
||||
return int(obj)
|
||||
elif isinstance(obj, (np.floating, np.float64)):
|
||||
return float(obj)
|
||||
elif isinstance(obj, np.ndarray):
|
||||
return obj.tolist()
|
||||
else:
|
||||
return obj
|
||||
|
||||
Reference in New Issue
Block a user