def make_json_serializable()

in cost-optimization/hpa-config-recommender/src/hpaconfigrecommender/utils/models.py [0:0]


def make_json_serializable(data):
    """
    Recursively convert non-serializable objects to JSON-compatible format.
    """

    if isinstance(data, (datetime, pd.Timestamp)):
        return data.isoformat()
    if isinstance(data, list):
        return [make_json_serializable(item) for item in data]
    if isinstance(data, dict):
        return {
            key: make_json_serializable(value) for key, value in data.items()}
    if isinstance(data, (float, int)):
        return float(data)  # Ensure all numeric types are JSON-compatible
    if pd.isna(data):  # Handle NaN or None values
        return None
    return str(data)  # Default case: convert to string