fix: numpy float DB INSERT 오류 수정 #104

병합
htlee fix/numpy-float-db-insert 에서 develop 로 1 commits 를 머지했습니다 2026-03-20 13:40:35 +09:00

파일 보기

@ -56,29 +56,41 @@ class AnalysisResult:
def to_db_tuple(self) -> tuple:
import json
def _f(v: object) -> float:
"""numpy float → Python float 변환."""
return float(v) if v is not None else 0.0
def _i(v: object) -> int:
"""numpy int → Python int 변환."""
return int(v) if v is not None else 0
# features dict 내부 numpy 값도 변환
safe_features = {k: float(v) for k, v in self.features.items()} if self.features else {}
return (
self.mmsi,
str(self.mmsi),
self.timestamp,
self.vessel_type,
self.confidence,
self.fishing_pct,
self.cluster_id,
self.season,
self.zone,
self.dist_to_baseline_nm,
self.activity_state,
self.ucaf_score,
self.ucft_score,
self.is_dark,
self.gap_duration_min,
self.spoofing_score,
self.bd09_offset_m,
self.speed_jump_count,
self.cluster_size,
self.is_leader,
self.fleet_role,
self.risk_score,
self.risk_level,
json.dumps(self.features),
str(self.vessel_type),
_f(self.confidence),
_f(self.fishing_pct),
_i(self.cluster_id),
str(self.season),
str(self.zone),
_f(self.dist_to_baseline_nm),
str(self.activity_state),
_f(self.ucaf_score),
_f(self.ucft_score),
bool(self.is_dark),
_i(self.gap_duration_min),
_f(self.spoofing_score),
_f(self.bd09_offset_m),
_i(self.speed_jump_count),
_i(self.cluster_size),
bool(self.is_leader),
str(self.fleet_role),
_i(self.risk_score),
str(self.risk_level),
json.dumps(safe_features),
self.analyzed_at,
)