Spaces:
Sleeping
Sleeping
| import io | |
| import json | |
| import pandas as pd | |
| SUPPORTED_EXTENSIONS = {".csv", ".xlsx", ".xls", ".json"} | |
| def parse_file(filename: str, content: bytes) -> list[dict]: | |
| ext = _ext(filename) | |
| if ext == ".csv": | |
| df = pd.read_csv(io.BytesIO(content)) | |
| elif ext in {".xlsx", ".xls"}: | |
| df = pd.read_excel(io.BytesIO(content)) | |
| elif ext == ".json": | |
| data = json.loads(content) | |
| df = pd.DataFrame(data if isinstance(data, list) else [data]) | |
| else: | |
| raise ValueError(f"Unsupported file type: {ext}") | |
| df = df.dropna(how="all").fillna("") | |
| return df.to_dict(orient="records") | |
| def row_to_text(row: dict) -> str: | |
| return " | ".join(f"{k}: {v}" for k, v in row.items() if str(v).strip()) | |
| def _ext(filename: str) -> str: | |
| return "." + filename.rsplit(".", 1)[-1].lower() | |