"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني جعل فئات Python الخاصة بي JSON قابلة للتسلسل؟

كيف يمكنني جعل فئات Python الخاصة بي JSON قابلة للتسلسل؟

تم النشر بتاريخ 2024-12-21
تصفح:709

How Can I Make My Python Classes JSON Serializable?

جعل فئات Python قابلة للتسلسل

يسمح التسلسل بتحويل الكائنات إلى تنسيق مناسب للاستمرارية أو النقل. غالبًا ما يؤدي تسلسل الفئات المخصصة في JSON إلى خطأ TypeError نظرًا لطبيعتها غير القابلة للتسلسل JSON.

تنفيذ طريقة toJSON()

أحد الأساليب هو إنشاء toJSON()‎ للفئة، والتي تعالج تسلسلها يدويًا. يتطلب ذلك تنفيذ وظيفة تسلسل JSON مخصصة وضمان المعالجة السليمة للكائنات المتداخلة.

import json

class FileItem:
    def __init__(self, fname):
        self.fname = fname

    def toJSON(self):
        return json.dumps(self.__dict__)

x = FileItem('/foo/bar')
print(x.toJSON())  # Outputs: '{"fname": "/foo/bar"}'

استخدام مكتبة orjson

لدراسة شاملة الحل، فكر في استخدام مكتبة orjson، التي توفر طريقة فعالة وقابلة للتخصيص لتسلسل الفئات المخصصة إلى JSON. وهو يوفر ميزات متقدمة مثل تنفيذ المخطط ودعم هياكل الكائنات المعقدة.

import orjson

@orjson.dataclass
class FileItem:
    fname: str

x = FileItem('/foo/bar')
json_bytes = orjson.dumps(x)  # Returns a byte string
print(json_bytes.decode())  # Outputs: '{"fname": "/foo/bar"}'

الاستنتاج

باستخدام toJSON() مخصص توفر الطريقة أو مكتبة orjson حلولاً مناسبة لتسلسل فئات Python إلى JSON. يضمن كلا الأسلوبين إمكانية تمثيل الكائنات ونقلها بشكل فعال بتنسيق JSON.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3