Login

JSON Decimal encoder

Author:
roxeteer
Posted:
April 12, 2011
Language:
Python
Version:
Not specified
Tags:
json decimal encoder
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

  1. JSON Encoder for models by bruno 5 years, 11 months ago
  2. JSON encoding middleware by kcarnold 6 years, 8 months ago
  3. Extended JSON encoder by kcarnold 6 years, 8 months ago
  4. Django newforms ExtJS JSON Encoder by davidblewett 6 years, 8 months ago
  5. Quick script to convert json data to csv by stephenemslie 4 years, 10 months ago

Comments

Please login first before commenting.