Python JSON serialize a Decimal object

后端 未结 17 1350
星月不相逢
星月不相逢 2020-11-22 08:27

I have a Decimal(\'3.9\') as part of an object, and wish to encode this to a JSON string which should look like {\'x\': 3.9}. I don\'t care about p

17条回答
  •  执笔经年
    2020-11-22 09:11

    Simplejson 2.1 and higher has native support for Decimal type:

    >>> json.dumps(Decimal('3.9'), use_decimal=True)
    '3.9'
    

    Note that use_decimal is True by default:

    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):
    

    So:

    >>> json.dumps(Decimal('3.9'))
    '3.9'
    

    Hopefully, this feature will be included in standard library.

提交回复
热议问题