मैं Python-2.6 CGI
स्क्रिप्ट का उपयोग कर रहा हूं, लेकिन सर्वर लॉग में इस त्रुटि को करते हुए पाया json.dumps()
,
Traceback (most recent call last):
File "/etc/mongodb/server/cgi-bin/getstats.py", line 135, in <module>
print json.dumps(__getdata())
File "/usr/lib/python2.7/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 201, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python2.7/json/encoder.py", line 264, in iterencode
return _iterencode(o, 0)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa5 in position 0: invalid start byte
यहाँ,
__getdata()
फ़ंक्शन देता है dictionary {}
।
इस प्रश्न को पोस्ट करने से पहले मैंने इस प्रश्न का उल्लेख किया है।
अद्यतन
निम्नलिखित पंक्ति JSON एनकोडर को नुकसान पहुंचा रही है,
now = datetime.datetime.now()
now = datetime.datetime.strftime(now, '%Y-%m-%dT%H:%M:%S.%fZ')
print json.dumps({'current_time': now}) // this is the culprit
मुझे इसके लिए एक अस्थायी निर्धारण मिला
print json.dumps( {'old_time': now.encode('ISO-8859-1').strip() })
लेकिन मुझे यकीन नहीं है कि यह करने का सही तरीका है।
dict
हैlist, dict, python timestamp value
__getdata
। मुझे नहीं पता कि आपको एक गैर-डिकोडेबल चरित्र क्यों मिल रहा है। आप इसे काम करने के लिए डिक्टेट पर पैच के साथ आने की कोशिश कर सकते हैं, लेकिन वे ज्यादातर बाद में और अधिक समस्याओं के लिए पूछ रहे हैं। मैं यह देखने की कोशिश कर रहा हूं कि गैर-अस्सी चरित्र कहां है। फिर यह पता लगाएं कि उस क्षेत्र की गणना कैसे की गई / सेट की गई और वहां से पिछड़े हुए हैं।
dict
?