如何在Pytdanic浮点验证中过滤出NaN?

from pydantic import BaseModel

class MySchema(BaseModel):
    float_value: float

推荐答案

您可以使用confloat并将上限设置为无穷大,或将下限设置为负无穷大.由于与NaN的所有数字比较都返回False,这将使pydantic拒绝NaN,同时保持所有其他行为相同(包括解析、从int到float的转换等).

from pydantic import BaseModel, confloat

class MySchema(BaseModel):
    float_value: confloat(ge=-float('inf'))
    # or:
    # float_value: confloat(le=float('inf'))

注意:您还可以使用confloatgtlt参数而不是gele来排除无穷大值.

测试:

m = MySchema(float_value=float('nan'))

输出:

pydantic.error_wrappers.ValidationError: 1 validation error for MySchema
float_value
  ensure this value is greater than or equal to -inf (type=value_error.number.not_ge; limit_value=-inf)

Python相关问答推荐

查找下一个值=实际值加上使用极点的50%

将轨迹优化问题描述为NLP.如何用Gekko解决这个问题?当前面临异常:@错误:最大方程长度错误

添加包含中具有任何值的其他列的计数的列

如何根据另一列值用字典中的值替换列值

Pythind 11无法弄清楚如何访问tuple元素

从webhook中的短代码(而不是电话号码)接收Twilio消息

从dict的列中分钟

如何请求使用Python将文件下载到带有登录名的门户网站?

在np数组上实现无重叠的二维滑动窗口

什么是最好的方法来切割一个相框到一个面具的第一个实例?

python中的解释会在后台调用函数吗?

UNIQUE约束失败:customuser. username

为什么Django管理页面和我的页面的其他CSS文件和图片都找不到?'

如何合并两个列表,并获得每个索引值最高的列表名称?

如何从需要点击/切换的网页中提取表格?

Python全局变量递归得到不同的结果

将标签移动到matplotlib饼图中楔形块的开始处

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

有没有办法在不先将文件写入内存的情况下做到这一点?

当输入是字典时,`pandas. concat`如何工作?