Spaces:
Runtime error
Runtime error
import pandas as pd | |
import json | |
from loguru import logger | |
def dict_to_dataframe(data: dict) -> pd.DataFrame: | |
""" | |
Converts a dictionary into a Pandas DataFrame with formatted values. | |
Handles non-serializable values gracefully by skipping them. | |
Args: | |
data (dict): The dictionary to convert. | |
Returns: | |
pd.DataFrame: A DataFrame representation of the dictionary. | |
""" | |
formatted_data = {} | |
for key, value in data.items(): | |
try: | |
# Attempt to serialize the value | |
if isinstance(value, list): | |
# Format list as comma-separated string | |
formatted_value = ", ".join( | |
str(item) for item in value | |
) | |
elif isinstance(value, dict): | |
# Format dict as key-value pairs | |
formatted_value = ", ".join( | |
f"{k}: {v}" for k, v in value.items() | |
) | |
else: | |
# Convert other serializable types to string | |
formatted_value = json.dumps( | |
value | |
) # Serialize value to string | |
formatted_data[key] = formatted_value | |
except (TypeError, ValueError) as e: | |
# Log and skip non-serializable items | |
logger.warning( | |
f"Skipping non-serializable key '{key}': {e}" | |
) | |
continue | |
# Convert the formatted dictionary into a DataFrame | |
return pd.DataFrame( | |
list(formatted_data.items()), columns=["Key", "Value"] | |
) | |
example = dict_to_dataframe(data={"chicken": "noodle_soup"}) | |
# formatter.print_panel(example) | |
print(example) | |