Simplejson 2.1 и выше имеет встроенную поддержку типа Decimal:
>>> json.dumps(Decimal('3.9'), use_decimal=True)
'3.9'
Обратите внимание, что use_decimal
по умолчанию True
:
def dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True,
allow_nan=True, cls=None, indent=None, separators=None,
encoding='utf-8', default=None, use_decimal=True,
namedtuple_as_object=True, tuple_as_array=True,
bigint_as_string=False, sort_keys=False, item_sort_key=None,
for_json=False, ignore_nan=False, **kw):
Итак:
>>> json.dumps(Decimal('3.9'))
'3.9'
Надеемся, эта функция будет включена в стандартную библиотеку.