मैं Flask का उपयोग कर एक वेबसाइट बना रहा हूं, जिसमें से मैं जेसनिफ़ विधि का उपयोग ज्यादातर शब्दों को जेसन में परिवर्तित करने के लिए करता हूं।स्ट्रिंग के लिए एक पायथन डेटा संरचना में सभी दशमलव को कैसे परिवर्तित करें?
समस्या अब है कि मैं भी का उपयोग एक बहुत दशमलव, और दुर्भाग्य से jsonify संभाल सकते दशमलव:
=== (a long stacktrace preceding this) ===
File "/usr/local/lib/python2.7/dist-packages/flask/json.py", line 83, in default
return _json.JSONEncoder.default(self, o)
File "/usr/lib/python2.7/json/encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: Decimal('1') is not JSON serializable
तो मैं की तरह एक विधि में jsonify रैप करने के लिए चाहता था:
jsonify({'a': Decimal('1')})
की ओर जाता है यह:
def myOwnJsonify(item):
if isinstance(item, Decimal):
return flask.jsonify(str(item))
else:
return flask.jsonify(item)
दुर्भाग्य से, यह दशमलव के भीतर स्थित दशमलवों को परिवर्तित नहीं करता है एक निर्देश या सूची।
मैं एक स्ट्रिंग में एक पाइथन डेटा संरचना (यह एक सूची, एक dict, एक tuple, आदि) के भीतर सभी दशमलव संख्या कैसे परिवर्तित कर सकते हैं ताकि मैं डेटास्ट्रक्चर को सुरक्षित रूप से जेसन में परिवर्तित कर सकूं?
शायद सबसे अच्छा तरीका नहीं है, लेकिन आप इसके बजाय 'दशमलव' को उपclass नहीं कर सकते और अपनी इच्छित चीज़ों को प्राप्त करने के लिए '__repr__' विधि को ओवरराइड नहीं कर सकते? –