不(不再)建议您创建一个子类。的
json.dump()和
json.dumps()函数采用一个
default函数:
def decimal_default(obj): if isinstance(obj, decimal.Decimal): return float(obj) raise TypeErrorjson.dumps({'x': decimal.Decimal('5.5')}, default=decimal_default)演示:
>>> def decimal_default(obj):... if isinstance(obj, decimal.Decimal):... return float(obj)... raise TypeError... >>> json.dumps({'x': decimal.Decimal('5.5')}, default=decimal_default)'{"x": 5.5}'您发现的代码仅在Python 2.6上有效,并且覆盖了在以后的版本中不再调用的私有方法。



