【发布时间】:2021-10-21 02:17:39
【问题描述】:
我有以下 pydentic 数据类
@dataclass
class LocationPolygon:
type: int
coordinates: list[list[list[float]]]
这是从最内部数组具有maxItems=2, minItems=2 的 json 模式中获取的。
我找不到在 pydantic 中为此设置验证的方法。
在字段中设置此项仅适用于列表的外部级别。
@dataclass
class LocationPolygon:
type: int
coordinates: list[list[list[float]]] = Field(maxItems=2, minItems=2)
使用@validator 并更新字段属性也无济于事,因为该值已经设置并且已经进行了基本验证:
@validator('coordinates')
def coordinates_come_in_pair(cls, values, field):
field.sub_fields[0].sub_fields[0].field_info.min_items = 2
field.sub_fields[0].sub_fields[0].field_info.max_items = 2
我考虑过将root_validator 与pre=True 一起使用,但那里只有原始值。
有没有办法调整字段验证属性或使用 pydantic 基本规则进行验证?
【问题讨论】:
标签: python validation jsonschema python-dataclasses pydantic