flask jsonify返回返回十进制对象作为字符串而不是浮点数



flask中的jsonify函数似乎返回所有Decimal值的字符串而不是浮点数。有没有一种固有的方法来解决这个问题?

同时,我不得不手动重新映射它,但如果可能的话,我希望避免这种情况

from decimal import Decimal
result = {
    k: (float(v) if isinstance(v, Decimal) else v)
    for k, v in result.items() 
}
return jsonify(result)

我没有得到这个错误,你到底想返回什么?

from flask import jsonify
from decimal import Decimal
v = Decimal(0.1)
return jsonify({"0.1": float(v)})

——比;

{
    "0.1": 0.1
}
没有转换:

v = Decimal(0.1)
return jsonify({"0.1": v})
{
    "0.1": 0.1000000000000000055511151231257827021181583404541015625
}

另外,请确保检查了"原始数据"。返回的,而不是美观打印的或浏览器可能使用的其他格式。

最新更新