Pydantic
Pydantic là một thư viện Python dùng để:
-
Tạo các class dữ liệu kiểu an toàn (type-safe)
-
Tự động validate dữ liệu (rất mạnh)
-
Hỗ trợ dễ dàng chuyển từ dict → object và ngược lại
-
Được dùng rất phổ biến trong FastAPI, Django, các hệ thống lớn
Cài đặt
pip install pydantic
So sánh nhanh với dataclass
Tính năng | dataclass |
pydantic |
---|---|---|
Tự validate dữ liệu | ❌ | ✅ |
Chuyển dict dễ | ✅ | ✅ (tốt hơn) |
Bảo vệ kiểu dữ liệu | ❌ | ✅ |
Xử lý dữ liệu lồng | Thủ công | ✅ Tự động |
Hỗ trợ JSON | Thủ công | ✅ |
Ví dụ cơ bản với BaseModel
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
p = Person(name="Linh", age=25)
print(p)
#name='Linh' age=25
Tự động validate dữ liệu
p = Person(name="Linh", age="25")
print(p.age) # ✅ Tự động convert '25' → 25 (int)
Nếu không thể convert được, sẽ báo lỗi:
p = Person(name="Linh", age="abc") # ❌ ValidationError
Chuyển đổi giữa dict và JSON
# Chuyển thành dict
print(p.dict())
# Chuyển thành JSON
print(p.json())
class Address(BaseModel):
city: str
country: str
class User(BaseModel):
username: str
address: Address
u = User(username="nam", address={"city": "Hanoi", "country": "VN"})
print(u)
Tuỳ chỉnh kiểm tra nâng cao (validators)
from pydantic import validator
class Person(BaseModel):
name: str
age: int
@validator('age')
def age_must_be_positive(cls, v):
if v <= 0:
raise ValueError('Age must be positive')
return v
Tác giả: Đỗ Ngọc Tú
Công Ty Phần Mềm VHTSoft
Không có bình luận