递归地清理对象使其可以JSON序列化
(obj)
| 1530 | |
| 1531 | # Helper function to safely serialize objects for JSON |
| 1532 | def sanitize_for_json(obj): |
| 1533 | """递归地清理对象使其可以JSON序列化""" |
| 1534 | if isinstance(obj, dict): |
| 1535 | return {k: sanitize_for_json(v) for k, v in obj.items()} |
| 1536 | elif isinstance(obj, list): |
| 1537 | return [sanitize_for_json(item) for item in obj] |
| 1538 | elif hasattr(obj, "__dict__"): |
| 1539 | return sanitize_for_json(obj.__dict__) |
| 1540 | elif hasattr(obj, "text"): |
| 1541 | return str(obj.text) |
| 1542 | else: |
| 1543 | try: |
| 1544 | json.dumps(obj) |
| 1545 | return obj |
| 1546 | except (TypeError, ValueError): |
| 1547 | return str(obj) |
| 1548 | |
| 1549 | # Log all error details with safe serialization |
| 1550 | sanitized_details = sanitize_for_json(error_details) |