电话号码
pydantic_extra_types.phone_numbers
模块提供了 PhoneNumber
数据类型。
此类依赖于 [phonenumbers] 包,它是谷歌 [libphonenumber] 的 Python 移植版。
PhoneNumber ¶
基类: str
phonenumbers 包的封装类,该包是谷歌 libphonenumber 的 Python 移植版。
PhoneNumberValidator dataclass
¶
PhoneNumberValidator(
default_region: Optional[str] = None,
number_format: str = "RFC3966",
supported_regions: Optional[Sequence[str]] = None,
)
一个用于电话号码的 Pydantic 前置验证器 (before validator),它使用 phonenumbers 包,该包是谷歌 libphonenumber 的 Python 移植版。
旨在通过 typing.Annotated
类型构造创建自定义的 Pydantic 数据类型。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
default_region
|
str | None
|
解析没有国际前缀的电话号码时使用的默认区域代码。如果为 |
None
|
number_format
|
str
|
要返回的电话号码的格式。有效值请参见 |
'RFC3966'
|
supported_regions
|
list[str]
|
支持的区域。如果为空,则支持所有区域(默认)。 |
None
|
返回:str:格式化后的电话号码。
示例
MyNumberType = Annotated[ Union[str, phonenumbers.PhoneNumber], PhoneNumberValidator() ] USNumberType = Annotated[ Union[str, phonenumbers.PhoneNumber], PhoneNumberValidator(supported_regions=['US'], default_region='US') ]
class SomeModel(BaseModel): phone_number: MyNumberType us_number: USNumberType