Avatar ·

TypeError: Object of type is not JSON serializable

📁 पायथन

मैं Person क्लास के ऑब्जेक्ट को json में इस तरह लिखने की कोशिश कर रहा हूँ:

def postUserToJson(user):    fileName = str(user.FullName) + "" - "" + str(user.Id)    file = open(pathUsers + fileName + "".json"", ""w"", encoding=""utf-8"")    json.dump(user, file, ensure_ascii=False)    file.close()

मुझे यह error मिल रही है:

TypeError: Object of type 'Person' is not JSON serializab                    
Avatar ·

मैं यह नहीं कहूंगा कि यह बिल्कुल बुरी प्रैक्टिस है, बस इस काम को समझदारी से करना होगा, यह समझना होगा कि इसके क्या परिणाम हो सकते हैं, और इसका बिना सोचे-समझे उपयोग नहीं करना चाहिए।

इस काम को सीमित करने के कारण, अगर सोचें, तो मुझे निम्नलिखित दिखते हैं:

  1. एक्सप्लिसिट इम्प्लिसिट से बेहतर है. आप इस बात पर नियंत्रण खो देते हैं कि यह कोड वास्तव में कब निष्पादित होगा, और यह महत्वपूर्ण हो सकता है। Python में मॉड्यूल को न केवल टॉप-लेवल पर, बल्कि किसी फंक्शन या मेथड के अंदर भी इम्पोर्ट किया जा सकता है, जिसका मतलब है कि मॉड्यूल का कोड एप्लिकेशन स्टार्ट होने पर नहीं, बल्कि ऐसे फंक्शन के चलने और उसमें import स्टेटमेंट के निष्पादित होने पर चलेगा। ऐसे फंक्शन जो मॉड्यूल इम्पोर्ट करते हैं, एक से अधिक हो सकते हैं, और यह कि आपके बड़े एप्लिकेशन में उनमें से कौन सा और कब पहले चलता है, यह बिल्कुल स्पष्ट नहीं हो सकता।

  2. इस तथ्य के बावजूद कि मॉड्यूल का कोड पहली बार लोड होने पर केवल एक बार निष्पादित होता है (बाद के इम्पोर्ट्स पर यह लोड भी नहीं होता), इसे एक से अधिक बार निष्पादित कराना संभव नहीं है।

लॉग इन करें उत्तर देने के लिए

ब्लॉग