- Author:
- roxeteer
- Posted:
- April 12, 2011
- Language:
- Python
- Version:
- Not specified
- Score:
- 1 (after 1 ratings)
Python json module or simplejson don't support Decimals out of the box. Here's an encoder that casts Decimals into floats and then displays them in desired format.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import json
from decimal import Decimal
class DecimalEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, Decimal):
return float(obj)
return json.JSONEncoder.default(self, obj)
# Output has one decimal, change format if you need more
json.encoder.FLOAT_REPR = lambda o: format(o, '.1f')
# Usage:
d = Decimal("42.5")
json.dumps(d, cls=DecimalEncoder)
|
More like this
- Image compression before saving the new model / work with JPG, PNG by Schleidens 6 days, 14 hours ago
- Help text hyperlinks by sa2812 1 month ago
- Stuff by NixonDash 3 months, 1 week ago
- Add custom fields to the built-in Group model by jmoppel 5 months, 1 week ago
- Month / Year SelectDateWidget based on django SelectDateWidget by pierreben 8 months, 3 weeks ago
Comments
Please login first before commenting.