पायथन और जावास्क्रिप्ट के बीच JSON में डेटटाइम ऑब्जेक्ट को संभालना
पाइथन और जावास्क्रिप्ट के बीच डेटा का आदान-प्रदान करते समय, डेटटाइम ऑब्जेक्ट का सामना करना आम बात है। इन ऑब्जेक्टों के निर्बाध क्रमबद्धता और डिसेरिएलाइज़ेशन को सुनिश्चित करने के लिए, विभिन्न तरीकों को नियोजित किया जा सकता है।
एक अनुशंसित विधि में डेटाटाइम ऑब्जेक्ट्स को संभालने के लिए पायथन में json.dumps के 'डिफ़ॉल्ट' पैरामीटर का उपयोग करना शामिल है। यह पैरामीटर एक हैंडलर फ़ंक्शन के विनिर्देश को सक्षम करता है जो डेटाटाइम ऑब्जेक्ट को एक क्रमबद्ध प्रारूप में परिवर्तित करता है।
from datetime import datetime
date_handler = lambda obj: (
obj.isoformat()
if isinstance(obj, (datetime.datetime, datetime.date))
else None
)
json_str = json.dumps(datetime.datetime.now(), default=date_handler)
print(json_str)
यह दृष्टिकोण सुनिश्चित करता है कि पायथन डेटाटाइम ऑब्जेक्ट आईएसओ 8601 प्रारूप में परिवर्तित हो जाते हैं, जो जावास्क्रिप्ट द्वारा मानकीकृत और मान्यता प्राप्त है।
"2010-04-20T20:08:21.634121"
वैकल्पिक रूप से, विभिन्न ऑब्जेक्ट प्रकारों को संभालने के लिए एक अधिक व्यापक डिफ़ॉल्ट हैंडलर फ़ंक्शन को परिभाषित किया जा सकता है:
def handler(obj):
if hasattr(obj, 'isoformat'):
return obj.isoformat()
elif isinstance(obj, ...):
return ...
else:
raise TypeError, 'Object of type %s with value of %s is not JSON serializable' % (type(obj), repr(obj))
यह फ़ंक्शन 'आइसोफॉर्मेट' विशेषता की उपस्थिति की जांच करता है, जो डेटाटाइम ऑब्जेक्ट में सामान्य है, और इसे क्रमबद्ध प्रारूप में परिवर्तित करता है। इसके अतिरिक्त, यह आवश्यकतानुसार अन्य ऑब्जेक्ट प्रकारों को संभालता है।
इन तकनीकों का लाभ उठाकर, डेटाटाइम ऑब्जेक्ट्स को पायथन से कुशलतापूर्वक क्रमबद्ध किया जा सकता है और जावास्क्रिप्ट में डीसेरिएलाइज़ किया जा सकता है, जिससे दोनों भाषाओं के बीच सहज डेटा विनिमय की सुविधा मिलती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3