Cách nâng cao khả năng xử lý dữ liệu với các lớp dữ liệu Pydantic

Cach Nang Cao Kha Nang Xu Ly Du Lieu Voi Cac Lop Du Lieu Pydantic



Các lớp dữ liệu Pydantic cung cấp giải pháp nâng cao để tinh chỉnh việc xử lý dữ liệu trong Python. Hoạt động như một khung xác thực dữ liệu giúp đơn giản hóa quá trình tạo dữ liệu có cấu trúc bằng cách tích hợp nó với các lớp dữ liệu. Nó tự động xác thực dữ liệu, báo cáo lỗi và chuyển đổi kiểu dữ liệu. Điều này đảm bảo rằng dữ liệu phù hợp với các yêu cầu đã chỉ định. Nó cũng hỗ trợ các giá trị mặc định, các trường tùy chọn và cấu trúc dữ liệu phức tạp. Nói tóm lại, các lớp dữ liệu Pydantic giúp các lập trình viên tối ưu hóa các phương pháp xử lý dữ liệu, dẫn đến kết quả mã hóa hiệu quả và đáng tin cậy.

Cú pháp:

Một cách đơn giản nhưng hiệu quả để nâng cao cách quản lý dữ liệu bằng cách sử dụng các lớp dữ liệu Pydantic trong Python là sử dụng trình trang trí lớp với sự trợ giúp mà về cơ bản chúng ta tạo ra một mô hình về giao diện của dữ liệu. Nó giống như cung cấp cho dữ liệu của chúng ta một cấu trúc rõ ràng. Vì vậy, cú pháp để định nghĩa lớp dữ liệu như sau:







lớp học tên_người mẫu ( Mô hình cơ sở )

“model_name” trình bày tên của mô hình mà chúng tôi muốn tạo và “BaseModel” từ Pydantic hoạt động như một người giám hộ, đảm bảo rằng dữ liệu tuân theo các quy tắc mà chúng tôi đặt ra và được chuyển đến mô hình làm tham số đầu vào. Bên trong lớp, chúng ta xác định loại thông tin mà mỗi phần dữ liệu sẽ chứa. Quá trình này đảm bảo rằng khi chúng tôi tạo một phiên bản của lớp dữ liệu, thông tin chúng tôi cung cấp khớp với những gì chúng tôi đã xác định.



Phương pháp 1: Xử lý dữ liệu nâng cao với Dataclass của Pydantic

Hãy tưởng tượng rằng chúng ta đang phát triển một ứng dụng đơn giản để sắp xếp thông tin về sách trong bộ sưu tập của mình. Chúng tôi muốn đảm bảo rằng dữ liệu chúng tôi thu thập cho mục đích này là chính xác, nhất quán và có cấu trúc tốt. Đây là lúc các lớp dữ liệu Pydantic bước vào để đơn giản hóa và cải thiện quy trình.



Bắt đầu với ví dụ này yêu cầu xác định một Dataclass Pydantic. Vì vậy, chúng tôi bắt đầu bằng cách xác định một lớp dữ liệu Pydantic có tên là “Sách” đại diện cho các chi tiết của Sách. Để xác định lớp dữ liệu cho Pydantic, chúng ta cần đảm bảo rằng tất cả các gói của Pydantic đã được cài đặt trước trong dự án.





từ pydantic nhập khẩu Mô hình cơ sở

Bằng cách sử dụng trình trang trí lớp, chúng ta tạo lớp “Sách” kế thừa từ BaseModel của Pydantic. Bên trong lớp, chúng ta chỉ định các thuộc tính như tiêu đề, tác giả và năm phát hành, mỗi thuộc tính được liên kết với kiểu dữ liệu tương ứng.

lớp học Sách ( Mô hình cơ sở ) :

tiêu đề: str

tác giả: str

năm phát hành: int

Sau khi tạo mô hình lớp, chúng tôi sử dụng lớp dữ liệu Pydantic, tận dụng sức mạnh của lớp dữ liệu “Sách” để xử lý dữ liệu “phim”:



Trong phần này, chúng tôi bắt chước người dùng nhập thông tin chi tiết về cuốn sách. Mô hình của lớp dữ liệu “cuốn sách” có các thuộc tính như tiêu đề, tác giả và năm phát hành với các kiểu dữ liệu đặc biệt của chúng. Vì vậy, trong phần này, tức là “đầu vào”, chúng tôi chỉ định giá trị của chúng.

đầu vào = {

'tiêu đề' : 'Chịu đựng' ,

'tác giả' : 'Adam' ,

'năm phát hành' : 2023

}

Sau khi xác định thông số chi tiết về thuộc tính của mô hình sách trong đầu vào, chúng tôi tạo một phiên bản “Sách” với dữ liệu được cung cấp bằng cách sử dụng các chi tiết này; điều này được thực hiện để đảm bảo rằng Pydantic tự động xác thực đầu vào theo cấu trúc dữ liệu đã xác định. Nếu có bất kỳ sự mâu thuẫn hoặc sai sót nào, chẳng hạn như năm phát hành không phải là số nguyên hoặc tiêu đề bị thiếu, Pydantic sẽ nhanh chóng đưa ra lỗi cùng với lời giải thích thân thiện với người dùng.

thử :

sách = Sách ( ** đầu vào )

in ( 'Chi tiết sách:' , sách. tiêu đề , sách. tác giả , sách. năm phát hành )

ngoại trừ Ngoại lệ BẰNG Nó là:

in ( 'Lỗi:' , Nó là )

Để xử lý dữ liệu nâng cao có kinh nghiệm với các lớp dữ liệu Pydantic, chúng tôi nhận được cơ chế tích hợp sẵn để xác thực và nhất quán dữ liệu. Chúng ta có thể kết hợp các trường tùy chọn, giá trị mặc định và cấu trúc lồng nhau phức tạp để bao quát các tình huống dữ liệu khác nhau. Điều này đảm bảo rằng dữ liệu của chúng tôi vẫn được sắp xếp và định dạng chính xác.

Bước này khám phá cách các lớp dữ liệu Pydantic cung cấp khả năng xử lý dữ liệu nâng cao thông qua các tính năng như trường tùy chọn, giá trị mặc định và cấu trúc lồng nhau.

Dưới đây là ví dụ trong đó chúng tôi trình bày cách thêm các trường tùy chọn và giá trị mặc định:

Giả sử chúng tôi muốn cho phép người dùng nhập thông tin chi tiết bổ sung về sách như thể loại và thời gian chạy. Tuy nhiên, những chi tiết này có thể không phải lúc nào cũng có sẵn. Với các lớp dữ liệu Pydantic, chúng ta có thể dễ dàng đạt được điều này bằng cách đặt các trường tùy chọn và thậm chí đặt các giá trị mặc định.

Trong ví dụ này, lớp dữ liệu “Phim” bao gồm hai trường mới: ngôn ngữ viết sách và số trang. Trường “ngôn ngữ” có giá trị mặc định là “Không xác định”, cho biết rằng nếu người dùng không cung cấp chi tiết này thì giá trị mặc định là “Không xác định”. Trường “số trang” là tùy chọn và có thể để trống (được đặt thành không).

từ pydantic nhập khẩu Mô hình cơ sở
lớp học Sách ( Mô hình cơ sở ) :
tiêu đề: str
tác giả: str
năm phát hành: int
ngôn ngữ: str = 'không xác định'
trang: int = Không có
đầu vào = {
'tiêu đề' : 'Chịu đựng' ,
'tác giả' : 'Adam' ,
'năm phát hành' : 2023 ,
'ngôn ngữ' : 'Tiếng Anh' ,
'trang' : 2. 3. 4
}
sách = Sách ( ** đầu vào )
in ( 'Chi tiết sách:' , sách. tiêu đề , sách. tác giả , sách. năm phát hành , sách. ngôn ngữ , sách. trang )

Chúng ta có thể sao chép những dòng mã này và dán vào trình biên dịch để quan sát kết quả:

từ pydantic nhập khẩu Mô hình cơ sở
lớp học Sách ( Mô hình cơ sở ) :
tiêu đề: str
tác giả: str
năm phát hành: int
đầu vào = {
'tiêu đề' : 'Chịu đựng' ,
'tác giả' : 'Adam' ,
'năm phát hành' : 2023
}

# Tạo một instance sách
thử :
sách = Sách ( ** đầu vào )
in ( 'Chi tiết sách:' , sách. tiêu đề , sách. tác giả , sách. năm phát hành )
ngoại trừ Ngoại lệ BẰNG Nó là:
in ( 'Lỗi:' , Nó là )

Bằng cách bao gồm các trường tùy chọn và giá trị mặc định này, Pydantic đảm bảo rằng dữ liệu vẫn có cấu trúc tốt và nhất quán ngay cả khi người dùng không cung cấp một số chi tiết nhất định.

Phương pháp 2: Xử lý dữ liệu với Dataclass của Pydantic cho Mẫu đăng ký sinh viên

Hãy tưởng tượng rằng chúng ta đang tạo một mẫu đăng ký cho một sự kiện của trường. Mọi người cần nhập thông tin của họ và chúng tôi muốn tránh sai sót. Đó là lúc các lớp dữ liệu Pydantic trợ giúp. Họ đảm bảo rằng dữ liệu là đúng và xử lý nó dễ dàng.

Sau khi đưa các gói cần thiết vào dự án Python, chúng tôi xác định lớp dữ liệu Pydantic bằng cách tạo lớp dữ liệu Pydantic có tên là “Student” để biết thông tin chi tiết về người tham gia.

từ pydantic nhập khẩu Mô hình cơ sở

Sử dụng trình trang trí lớp để thiết lập lớp “Sinh viên”. Nó kế thừa từ BaseModel của Pydantic. Bên trong, chúng tôi đặt tên cho các thuộc tính như tên, email, bộ phận và số điện thoại, mỗi thuộc tính có kiểu dữ liệu riêng.

lớp học Học sinh ( Mô hình cơ sở ) :

tên: str

e-mail : str

phòng: str

điện thoại: str

Với việc sử dụng lớp dữ liệu Pydantic hiện nay, hãy làm việc với lớp dữ liệu “Student” để quản lý dữ liệu học sinh:

thông tin = {

'tên' : 'XYZ' ,

'e-mail' : 'xyz@student.com' ,

'phòng' : 'Andrew' ,

'điện thoại' : '0003-4567234'

}

Trong phần này, chúng tôi giả vờ rằng ai đó đăng ký. Khi chúng tôi tạo một phiên bản “Sinh viên” bằng cách sử dụng dữ liệu của họ, Pydantic sẽ kiểm tra xem nó có phù hợp với cấu trúc hay không. Nếu xảy ra lỗi, chẳng hạn như email không có “@” hoặc phần không có chuỗi, Pydantic sẽ dừng lại và giải thích vấn đề.

học sinh = Học sinh ( **thông tin )

in ( 'Thông tin sinh viên:' , học sinh )

Việc xử lý dữ liệu được cải thiện bằng cách sử dụng các lớp dữ liệu Pydantic mang lại cho chúng ta dữ liệu sẵn sàng sử dụng. Chúng tôi có thể thêm nhiều trường hơn, đặt giá trị mặc định hoặc làm việc với các thiết lập dữ liệu phức tạp. Tất cả điều này đảm bảo rằng dữ liệu của chúng tôi luôn được tổ chức.

Mã và đoạn mã đầu ra được đề cập trong phần sau để quan sát:

từ pydantic nhập khẩu Mô hình cơ sở

lớp học Học sinh ( Mô hình cơ sở ) :
tên: str
e-mail : str
phòng: str
điện thoại: str

thông tin = {
'tên' : 'XYZ' ,
'e-mail' : 'xyz@student.com' ,
'phòng' : 'Andrew' ,
'điện thoại' : '0003-4567234'
}
học sinh = Học sinh ( **thông tin )
in ( 'Thông tin sinh viên:' , học sinh )

Sau khi quan sát kết quả đầu ra, chúng ta có thể tổng hợp rằng các lớp dữ liệu Pydantic giúp xử lý dữ liệu một cách trơn tru trong ví dụ đơn giản này. Họ đảm bảo rằng đầu vào phù hợp với những gì chúng tôi muốn. Điều này có nghĩa là ít lỗi hơn và người dùng hạnh phúc hơn.

Phần kết luận

Các lớp dữ liệu Pydantic tích hợp cách chúng ta xử lý dữ liệu. Họ đảm bảo rằng thông tin vừa chính xác vừa phù hợp với cấu trúc được yêu cầu. Điều này có nghĩa là ít lỗi hơn và ứng dụng hoàn hảo hơn. Với Pydantic, các nhà phát triển có thể nỗ lực tạo ra các ứng dụng hoạt động tốt mà không bị làm phiền bởi những lo ngại về vấn đề dữ liệu. Hãy nghĩ về việc có một trình quản lý tác vụ chuyên dụng chỉ để quản lý dữ liệu, đảm bảo mọi thứ diễn ra suôn sẻ từ đầu đến cuối.