在Pydantic模型中,如何獲取某個字段的max_length值?

在Pydantic模型中,如何獲取某個字段的max_length值?

本文探討如何在Pydantic模型中獲取指定字段的max_length值。 我們將以一個名為MetaCollection的模型為例,演示如何正確獲取description字段的max_length。

首先,讓我們定義MetaCollection模型:

from pydantic import BaseModel, Field  class MetaCollection(BaseModel):     id: int | None = Field(default=None)     collection_name: str = Field(max_length=64)     description: str | None = Field(None, max_length=1024)     # ... 其他字段

之前嘗試使用metacollection.__fields__[“description”].field_info.extra[“max_length”]的方式獲取max_length值會報錯,這是因為在Pydantic v1中,max_length屬性直接存儲在field_info對象中,而不是extra字典里。

正確的獲取方法如下:

from pydantic import BaseModel, Field  class MetaCollection(BaseModel):     id: int | None = Field(default=None)     collection_name: str = Field(max_length=64)     description: str | None = Field(None, max_length=1024)     # ... 其他字段  description_max_length = MetaCollection.__fields__["description"].field_info.max_length print(description_max_length)  # 輸出 1024

這段代碼直接訪問field_info.max_length屬性,能夠正確地獲取description字段的max_length值 (1024)。 請注意,Pydantic v2版本的獲取方式可能有所不同,建議參考官方文檔或社區尋求最新信息。 本文提供的代碼適用于Pydantic v1。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享