Spaces:
Running
Running
| import json | |
| from typing import Any | |
| from json_repair import repair_json | |
| def validate_and_repair_json(json_str: str | dict) -> dict[str, Any] | str: | |
| """Validates a JSON string and attempts to repair it if invalid. | |
| Args: | |
| json_str (str): The JSON string to validate/repair | |
| Returns: | |
| Union[Dict[str, Any], str]: The parsed JSON dict if valid/repairable, | |
| otherwise returns the original string | |
| """ | |
| if not isinstance(json_str, str): | |
| return json_str | |
| try: | |
| # If invalid, attempt repair | |
| repaired = repair_json(json_str) | |
| return json.loads(repaired) | |
| except (json.JSONDecodeError, ImportError): | |
| # Return original if repair fails or module not found | |
| return json_str | |