python config_error ai_generated true

pydantic_core._pydantic_core.ValidationError: 1 validation error for Order customer_id 字段必填 [type=missing, input_value={}, input_type=dict]

pydantic_core._pydantic_core.ValidationError: 1 validation error for Order customer_id Field required [type=missing, input_value={}, input_type=dict]

ID: python/pydantic-missing-field-required

其他格式: JSON · Markdown 中文 · English
80%修复率
89%置信度
0证据数
2024-02-05首次发现

版本兼容性

版本状态引入弃用备注
2.x active — — —

根因分析

模型定义了无默认值的 customer_id 字段,但输入字典中未提供该值,Pydantic v2 抛出 missing 错误而非使用 None。

English

The model defines customer_id without a default and no value was provided in the input dict; Pydantic v2 raises missing error instead of using None.

generic

解决方案

  1. 98% 成功率
    from typing import Optional
    class Order(BaseModel):
        customer_id: Optional[int] = None
  2. 97% 成功率
    from pydantic import Field
    class Order(BaseModel):
        items: list = Field(default_factory=list)

无效尝试

常见但无效的做法:

  1. 70% 失败

    Type checker and Pydantic v2 will complain that None is not int; runtime validation still fails if None is passed explicitly.

  2. 90% 失败

    extra controls unknown fields, not missing required fields.