| import json | |
| import numpy as np | |
| class NumpyEncoder(json.JSONEncoder): | |
| """Custom JSON encoder for numpy types""" | |
| def default(self, obj): | |
| if isinstance(obj, (np.integer, np.int32, np.int64)): | |
| return int(obj) | |
| elif isinstance(obj, (np.floating, np.float32, np.float64)): | |
| return float(obj) | |
| elif isinstance(obj, np.ndarray): | |
| return obj.tolist() | |
| elif isinstance(obj, np.bool_): | |
| return bool(obj) | |
| return super().default(obj) | |
| def safe_json_dump(data, file_path, indent=2): | |
| """Safely dump data to JSON file, handling numpy types""" | |
| with open(file_path, 'w', encoding='utf-8') as f: | |
| json.dump(data, f, indent=indent, cls=NumpyEncoder) | |