3分钟学会使用pydantic库的BaseModel类

简介

  • pydantic是一个用于数据验证和解析的Python库。BaseModel是pydantic库中的一个基类,用于定义数据模型。
  • BaseModel提供了一种声明性的方式来定义数据模型,包括字段类型、验证规则和默认值。通过继承BaseModel,可以定义自己的数据模型类,并使用类属性来定义字段。

简单示例

from pydantic import BaseModel

class User(BaseModel): # 继承 BaseModel
	name: str
	age: int
	email: str
	id: int = 0001 # 非必要字段,也可修改

# 实例化
user_data = {
"name": "John Doe",
"age": 30,
"email": "john.doe@example.com"
}

user1 = User(**user_data)
user2 = User(name='joe', 
			age=22, 
			email='joe.doe@example.com',
			id=0002)

在上面的示例中,我们定义了一个名为User的数据模型类,继承自BaseModel。User类有三个字段:name(字符串类型)、age(整数类型)和email(字符串类型)。在这个例子中,id字段还定义了一个默认值,即0001。如果在实例化User对象时没有提供id字段的值,那么它将默认为0001。

我们可以使用user_data字典中的数据来实例化User类,并通过**操作符将字典中的键值对传递给User类的构造函数。pydantic会根据字段类型进行数据验证,并自动将输入数据转换为字段指定的类型。

如果输入数据不符合字段的验证规则,pydantic会引发ValidationError异常,并提供有关验证错误的详细信息。

补充

更详细用法参考:Python 利用Pydantic模块提升开发效率

`pydantic`是一个强大的Python,用于数据验证和设置。它可以用来定义数据模型,并且可以通过验证来确保数据符合预期的格式。以下是一个使用`pydantic`的示例: ```python from pydantic import BaseModel class User(BaseModel): id: int name: str email: str age: int = None class Config: orm_mode = True ``` 在上面的代码中,我们创建了一个`User`模型,它继承自`BaseModel`。我们定义了四个属性:`id`,`name`,`email`,`age`。其中`id`,`name`,`email`是必需的,而`age`是可选的,因为我们给它赋了一个默认值`None`。我们还定义了一个`Config`,其中`orm_mode`是`True`。这是为了让模型能够与ORM(对象关系映射)一起使用。 我们可以使用`User`模型来创建`User`实例: ```python user_data = { "id": 1, "name": "Alice", "email": "alice@example.com", "age": 25 } user = User(**user_data) print(user) ``` 在上面的代码中,我们将字典`user_data`传递给`User`构造函数,以创建一个`User`实例。我们可以使用点`.`运算符来访问`User`实例的属性,例如: ```python print(user.name) ``` 当我们访问`User`实例的属性时,`pydantic`将自动验证属性的型和格式,以确保它们符合我们在模型中定义的规范。如果数据不符合规范,将引发`ValidationError`异常。 `pydantic`还可以将模型转换为JSON字符串,例如: ```python user_json = user.json() print(user_json) ``` 上面的代码将`User`实例转换为一个JSON字符串,并将其打印到控制台。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值