Source code for src.utils.json_compatible

import numpy as np

[docs] def json_compatible(obj): """ Recursively convert NumPy arrays, scalars, and related objects into JSON-serializable Python types. """ if isinstance(obj, dict): return {json_compatible(k): json_compatible(v) for k, v in obj.items()} elif isinstance(obj, (list, tuple, set)): return [json_compatible(v) for v in obj] elif isinstance(obj, np.ndarray): return json_compatible(list(obj)) elif isinstance(obj, (np.integer, np.int32, np.int64)): return int(obj) elif isinstance(obj, (np.floating, np.float32, np.float64)): if np.isnan(obj) or np.isinf(obj): return None return float(obj) elif isinstance(obj, (np.bool_)): return bool(obj) elif obj is None: return None else: return obj