fix: numpy float → Python native 변환 — DB INSERT 시 np.float64 직렬화 오류 수정
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
부모
c634381c15
커밋
746ddb7111
@ -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,
|
||||
)
|
||||
|
||||
불러오는 중...
Reference in New Issue
Block a user