Pydantic

Pydantic là một thư viện Python dùng để:

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())

Lồng model bên trong model

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)
Pydantic tự động biến dict thành object Address – bạn không cần viết tay như dataclass.

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


Phiên bản #3
Được tạo 22 tháng 4 2025 04:54:25 bởi Đỗ Ngọc Tú
Được cập nhật 22 tháng 4 2025 05:01:01 bởi Đỗ Ngọc Tú