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传递
有更好解决方法可以留言告知