#!/usr/bin/env python # -*- coding: utf-8 -*- import asyncio import sys sys.path.insert(0, 'ruoyi-fastapi-backend') from datetime import date, datetime from utils.common_util import CamelCaseUtil # 模拟数据库返回的数据 receipt_dict = { 'receiptId': 685, 'receiptNo': '2026内检509', 'receiptDate': date(2026, 1, 12), 'createTime': datetime(2026, 4, 15, 13, 27, 44), 'samples': [ { 'sampleId': 3879, 'sampleSn': '2509002SG', 'testDeadline': None, 'createTime': datetime(2026, 4, 15, 13, 27, 44) }, { 'sampleId': 3880, 'sampleSn': '2509003SG', 'testDeadline': None, 'createTime': datetime(2026, 4, 15, 13, 27, 44) } ] } # 测试 serialize_dates 函数 def serialize_dates(obj): if isinstance(obj, dict): for key, value in obj.items(): if hasattr(value, 'isoformat'): # datetime/date 对象 obj[key] = value.isoformat() elif isinstance(value, list): for item in value: serialize_dates(item) return obj print("Original:", receipt_dict) result = serialize_dates(receipt_dict) print("Serialized:", result) # 测试 jsonable_encoder from fastapi.encoders import jsonable_encoder try: encoded = jsonable_encoder(result) print("jsonable_encoder success:", encoded) except Exception as e: import traceback print("jsonable_encoder error:") traceback.print_exc()