在我的Flask应用程序中,我使用一个自定义的JSONEncoder
,它将decimal.Decimal
对象四舍五入地序列化。在
class MyJsonEncoder(JSONEncoder):
def default(self, obj, prec=2):
if isinstance(obj, Decimal):
return str(obj.quantize(Decimal('.'+'0'*(prec-1)+'2')))
else:
return JSONEncoder.default(self, obj)
prec
参数允许我更改舍入的精度。默认为两个位置。我想偶尔调用json.dumps
并给它传递一个prec
参数,这样我就可以强制decimal.Decimal
对象取整为4个位置。在
但是当我这样做时,JSON模块抛出:
TypeError: __init__() got an unexpected keyword argument 'prec'
有没有可能做我在这里要做的事?我不明白为什么JSON模块要对**kwargs
执行任何操作。我能强迫它忽略它们吗?在
相关问题 更多 >
编程相关推荐