"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं अपनी पायथन क्लासेस JSON को क्रमबद्ध कैसे कर सकता हूँ?

मैं अपनी पायथन क्लासेस JSON को क्रमबद्ध कैसे कर सकता हूँ?

2024-12-21 को प्रकाशित
ब्राउज़ करें:139

How Can I Make My Python Classes JSON Serializable?

पायथन क्लासेस JSON को सीरियलाइज़ करने योग्य बनाना

सीरियलाइज़ेशन वस्तुओं को दृढ़ता या स्थानांतरण के लिए उपयुक्त प्रारूप में परिवर्तित करने की अनुमति देता है। JSON में कस्टम कक्षाओं को क्रमबद्ध करने से अक्सर उनकी गैर-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"}'

ऑर्जसन लाइब्रेरी का उपयोग करना

एक व्यापक के लिए समाधान, ऑर्जसन लाइब्रेरी का उपयोग करने पर विचार करें, जो 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 का उपयोग करना() विधि या ऑर्जसन लाइब्रेरी पायथन कक्षाओं को JSON में क्रमबद्ध करने के लिए सुविधाजनक समाधान प्रदान करती है। दोनों दृष्टिकोण यह सुनिश्चित करते हैं कि वस्तुओं को JSON प्रारूप में प्रभावी ढंग से प्रस्तुत और प्रसारित किया जा सकता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3