fastapi-Form问题

Python 的 fastapi 框架 ,版本 0.120+

使用 Post 请求指定 Form 类型注解时,存在 超长数字字符串隐式转数值 的解析问题。


比如字符串参数 user_id: str = Form()

如果客户端传递的user_id = 7510152752404712746

服务端接收时已经变成 7510152752404712000

最后三位变成了000


使用Form类型注解时,FastAPI会尝试将传入的字符串自动转换为Python的数值类型(如int或float),如果字符串符合数值格式(如全数字),就会触发这种转换。

Python的int类型在处理超长整数时,会自动转换为浮点数,导致精度丢失(如末尾的数字被截断为0)。


降低了版本后可用。 fastapi==0.110.2

0.110.2 能正常接收超长数字字符串


不降版本,可以更改请求方式或通过Body传递

有更好解决方法可以留言告知

点赞

发表回复