یک کلاس Record با فیلدهای id، label و values (لیست اعداد) تعریف کنید، چند نمونه از آن ایجاد کنید و یک JSONEncoder سفارشی بنویسید که لیست اشیاء Record را به یک رشته JSON قابل ارسال در وب تبدیل کند.

6.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:21

0.0

برای حل این مسئله از ماژول استاندارد json در پایتون استفاده کنید: یک کلاس جدید از json.JSONEncoder ارث‌بری کنید و متد default را بازنویسی کنید تا در صورت برخورد با نمونه‌های Record یک دیکشنری ساده (مثلاً {'id': ..., 'label': ..., 'values': [...]}) برگرداند و در غیر این صورت متد پایه را صدا بزند. سپس از json.dumps(records, cls=RecordEncoder) برای گرفتن رشته JSON استفاده کنید — این روش برای خروجی‌ گرفتن ردیف‌های داده در Data Science یا ارسال پاسخ‌های JSON در وب‌اپلیکیشن‌ها مفید است؛ برای فریم‌ورک‌هایی مثل Flask می‌توانید همین رشته را به‌عنوان محتوای پاسخ بازگردانید.

توسط پژوهشگر در 201 روز قبل ساعت 03:21
دسته بندی ها: Python Python for beginner
reyhaneh در 201 روز قبل ساعت 06:44

نکته کلیدی این است که Encoder سفارشی فقط شی Record را به دیکشنری ساده تبدیل کند تا json.dumps بتواند آن را سریال کند. برای سازگاری بهتر، مقادیر داخل values را همواره به لیست اعداد معتبر تبدیل یا پیش‌پردازی کنید تا از خطاهای NaN یا غیرعدد جلوگیری شود. اگر داده‌های بزرگ دارید، استفاده از dataclass یا ساختاری با __slots__ را در نظر بگیرید تا مصرف حافظه کاهش یابد و نگهداری کد ساده‌تر شود. در نهایت می‌توانید json.dumps(records, cls=RecordEncoder) را در پاسخ‌های وب‌اپلیکیشن مانند Flask به کار ببرید تا ارسال داده‌های ساخت‌یافته ساده باشد.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری