يا جماعة أنا بكتب API بـ Python وبجلب بيانات مبيعات أو أسعار منتجات من قاعدة البيانات عشان أرجعها لليوزر في شكل JSON Response.
المطلوب:
تحويل قاموس (Dictionary) فيه بيانات المنتج للغة JSON باستخدام دالة json.dumps().
المشكلة اللي مقابلاني:
أول ما الكود يوصل لسطر تحويل البيانات لـ JSON الابلكيشن بيضرب وبيطلعلي الأيرور ده:
TypeError: Object of type Decimal is not JSON serializable
المشكلة إن البيانات جاية من قاعدة البيانات وفيها مبالغ مالية وأسعار معرّفة بنوع Decimal في البايثون، والـ JSON مش قادر يتعرف عليها كأرقام!
الكود البرمجي (المشكلة)
import json
from decimal import Decimal
# البيانات راجعة من قاعدة البيانات بالشكل ده
product_data = {
"id": 101,
"name": "كيبورد ميكانيكي",
"price": Decimal('1250.50'), # نوع البيانات هنا Decimal
"in_stock": True
}
# السطر اللي بيضرب وبيطلع TypeError
json_output = json.dumps(product_data, ensure_ascii=False)
print(json_output)
التعليقات (2)
سجّل دخولك لإضافة تعليق
تسجيل الدخول