Πώς να βελτιώσετε τον χειρισμό δεδομένων με τις κλάσεις δεδομένων Pydantic

Pos Na Beltiosete Ton Cheirismo Dedomenon Me Tis Klaseis Dedomenon Pydantic



Οι pydantic dataclasses προσφέρουν μια προηγμένη λύση για τη βελτίωση του χειρισμού δεδομένων στην Python. Η λειτουργία ως πλαίσιο επικύρωσης δεδομένων απλοποιεί τη διαδικασία δημιουργίας δομημένων δεδομένων ενσωματώνοντάς τα με κλάσεις δεδομένων. Αυτοματοποιεί την επικύρωση δεδομένων, την αναφορά σφαλμάτων και τις μετατροπές τύπων δεδομένων. Αυτό διασφαλίζει ότι τα δεδομένα ευθυγραμμίζονται με τις καθορισμένες απαιτήσεις. Υποστηρίζει επίσης τις προεπιλεγμένες τιμές, τα προαιρετικά πεδία και τις σύνθετες δομές δεδομένων. Εν ολίγοις, οι τάξεις δεδομένων Pydantic βοηθούν τους προγραμματιστές να βελτιστοποιήσουν τις πρακτικές χειρισμού δεδομένων, οδηγώντας σε αποτελεσματικά και αξιόπιστα αποτελέσματα κωδικοποίησης.

Σύνταξη:

Ένας απλός αλλά αποτελεσματικός τρόπος για να βελτιώσετε τον τρόπο διαχείρισης των δεδομένων χρησιμοποιώντας τις κλάσεις δεδομένων Pydantic στην Python είναι η χρήση του διακοσμητή κλάσης με τη βοήθεια του οποίου ουσιαστικά δημιουργούμε ένα μοντέλο για το πώς πρέπει να φαίνονται τα δεδομένα μας. Είναι σαν να δίνουμε στα δεδομένα μας μια σαφή δομή. Έτσι, η σύνταξη για τον ορισμό της κλάσης δεδομένων είναι η εξής:







τάξη όνομα μοντέλου ( BaseModel )

Το 'model_name' παρουσιάζει το όνομα του μοντέλου που θέλουμε να δημιουργήσουμε και το 'BaseModel' από την Pydantic λειτουργεί σαν φύλακας που διασφαλίζει ότι τα δεδομένα ακολουθούν τους κανόνες που ορίσαμε και μεταβιβάζονται στο μοντέλο ως παράμετρος εισόδου. Μέσα στην κλάση, ορίζουμε τι είδους πληροφορίες πρέπει να περιέχει κάθε κομμάτι δεδομένων. Αυτή η διαδικασία διασφαλίζει ότι όταν δημιουργούμε μια παρουσία της κλάσης δεδομένων, οι πληροφορίες που παρέχουμε ταιριάζουν με αυτό που ορίσαμε.



Μέθοδος 1: Βελτιωμένος χειρισμός δεδομένων με την κλάση δεδομένων της Pydantic

Φανταστείτε ότι αναπτύσσουμε μια απλή εφαρμογή για την οργάνωση των πληροφοριών σχετικά με τα βιβλία της συλλογής μας. Θέλουμε να διασφαλίσουμε ότι τα δεδομένα που συλλέγουμε για αυτόν τον σκοπό είναι ακριβή, συνεπή και καλά δομημένα. Εδώ μπαίνουν οι κλάσεις δεδομένων Pydantic για να απλοποιήσουν και να βελτιώσουν τη διαδικασία.



Η έναρξη με το παράδειγμα απαιτεί τον ορισμό μιας κλάσης δεδομένων Pydantic. Έτσι, ξεκινάμε ορίζοντας μια κλάση δεδομένων Pydantic με το όνομα 'Books' που αντιπροσωπεύει τα στοιχεία των Βιβλίων. Για να ορίσουμε την κλάση δεδομένων για το Pydantic, πρέπει να βεβαιωθούμε ότι όλα τα πακέτα του Pydantic έχουν εγκατασταθεί πριν από το έργο.





από πυδατική εισαγωγή BaseModel

Χρησιμοποιώντας το class decorator, δημιουργούμε την κλάση 'Book' που κληρονομεί από το BaseModel της Pydantic. Μέσα στην κλάση, καθορίζουμε τα χαρακτηριστικά όπως τίτλος, συγγραφέας και έτος έκδοσης, καθένα από τα οποία σχετίζεται με τον αντίστοιχο τύπο δεδομένων του.

τάξη Βιβλίο ( BaseModel ) :

τίτλος: str

συγγραφέας: str

έκδοση_έτος: ενθ

Αφού δημιουργήσουμε ένα μοντέλο κλάσης, χρησιμοποιούμε την κλάση δεδομένων Pydantic, παίρνοντας την ισχύ της κλάσης δεδομένων «Book» για να χειριστούμε τα δεδομένα «ταινίας»:



Σε αυτήν την ενότητα, μιμούμαστε έναν χρήστη που εισάγει τις λεπτομέρειες σχετικά με το βιβλίο. Το μοντέλο της κλάσης δεδομένων «βιβλίου» έχει τα χαρακτηριστικά όπως τίτλος, συγγραφέας και έτος κυκλοφορίας με τους χαρακτηριστικούς τύπους δεδομένων τους. Έτσι, σε αυτό το μέρος, δηλαδή «εισαγωγή», καθορίζουμε τις τιμές τους.

εισαγωγή = {

'τίτλος' : 'Υποφέρω' ,

'συγγραφέας' : 'Αδάμ' ,

'έτος_έκδοσης' : 2023

}

Μετά τις προδιαγραφές των λεπτομερειών σχετικά με τα χαρακτηριστικά του μοντέλου βιβλίου στην είσοδο, δημιουργούμε μια παρουσία 'Βιβλίο' με τα παρεχόμενα δεδομένα χρησιμοποιώντας αυτές τις λεπτομέρειες. Αυτό γίνεται για να διασφαλιστεί ότι η Pydantic επικυρώνει αυτόματα την είσοδο σε σχέση με την καθορισμένη δομή δεδομένων. Εάν υπάρχει κάποια ασυνέπεια ή λάθος, όπως ένα έτος κυκλοφορίας που δεν είναι ακέραιος ή ένας τίτλος που λείπει, η Pydantic εμφανίζει γρήγορα ένα σφάλμα μαζί με μια φιλική προς το χρήστη εξήγηση.

δοκιμάστε :

Βιβλίο = Βιβλίο ( ** εισαγωγή )

Τυπώνω ( 'Λεπτομέρειες βιβλίου:' , Βιβλίο. τίτλος , Βιβλίο. συγγραφέας , Βιβλίο. έτος έκδοσης )

εκτός Εξαίρεση όπως και Είναι:

Τυπώνω ( 'Λάθος:' , είναι )

Για τον έμπειρο βελτιωμένο χειρισμό δεδομένων με τις κλάσεις δεδομένων Pydantic, λαμβάνουμε έναν ενσωματωμένο μηχανισμό για επικύρωση και συνέπεια δεδομένων. Μπορούμε να ενσωματώσουμε τα προαιρετικά πεδία, τις προεπιλεγμένες τιμές και τις σύνθετες ένθετες δομές για να καλύψουμε τα διάφορα σενάρια δεδομένων. Αυτό εγγυάται ότι τα δεδομένα μας παραμένουν οργανωμένα και σωστά μορφοποιημένα.

Αυτό το βήμα διερευνά τον τρόπο με τον οποίο οι κλάσεις δεδομένων Pydantic προσφέρουν βελτιωμένες δυνατότητες χειρισμού δεδομένων μέσω λειτουργιών όπως προαιρετικά πεδία, προεπιλεγμένες τιμές και ένθετες δομές.

Ακολουθεί ένα παράδειγμα όπου δείχνουμε πώς να προσθέσετε τα προαιρετικά πεδία και τις προεπιλεγμένες τιμές:

Ας υποθέσουμε ότι θέλουμε να επιτρέψουμε στους χρήστες να εισάγουν πρόσθετες λεπτομέρειες σχετικά με τα βιβλία, όπως το είδος και το χρόνο εκτέλεσης. Ωστόσο, αυτές οι λεπτομέρειες ενδέχεται να μην είναι πάντα διαθέσιμες. Με τις κλάσεις δεδομένων Pydantic, μπορούμε εύκολα να το πετύχουμε αυτό κάνοντας τα πεδία προαιρετικά και ακόμη και ορίζοντας τις προεπιλεγμένες τιμές.

Σε αυτό το παράδειγμα, η κλάση δεδομένων 'Ταινία' περιλαμβάνει δύο νέα πεδία: τη γλώσσα στην οποία είναι γραμμένο το βιβλίο και τον αριθμό των σελίδων. Το πεδίο 'γλώσσα' έχει μια προεπιλεγμένη τιμή 'Άγνωστο' που υποδεικνύει ότι εάν ο χρήστης δεν παρέχει αυτές τις λεπτομέρειες, ορίζεται από προεπιλογή 'Άγνωστο'. Το πεδίο 'αριθμός σελίδων' είναι προαιρετικό και μπορεί να μείνει κενό (να οριστεί σε καμία).

από πυδατική εισαγωγή BaseModel
τάξη Βιβλίο ( BaseModel ) :
τίτλος: str
συγγραφέας: str
έκδοση_έτος: ενθ
Γλώσσα: str = 'άγνωστος'
σελίδες: ενθ = Κανένας
εισαγωγή = {
'τίτλος' : 'Υποφέρω' ,
'συγγραφέας' : 'Αδάμ' ,
'έτος_έκδοσης' : 2023 ,
'Γλώσσα' : 'Αγγλικά' ,
'σελίδες' : 2. 3. 4
}
Βιβλίο = Βιβλίο ( ** εισαγωγή )
Τυπώνω ( 'Λεπτομέρειες βιβλίου:' , Βιβλίο. τίτλος , Βιβλίο. συγγραφέας , Βιβλίο. έτος έκδοσης , Βιβλίο. Γλώσσα , Βιβλίο. σελίδες )

Μπορούμε να αντιγράψουμε αυτές τις γραμμές κώδικα και να τις επικολλήσουμε στον μεταγλωττιστή για να παρατηρήσουμε τα αποτελέσματα:

από πυδατική εισαγωγή BaseModel
τάξη Βιβλίο ( BaseModel ) :
τίτλος: str
συγγραφέας: str
έκδοση_έτος: ενθ
εισαγωγή = {
'τίτλος' : 'Υποφέρω' ,
'συγγραφέας' : 'Αδάμ' ,
'έτος_έκδοσης' : 2023
}

# Δημιουργία παρουσίας βιβλίου
δοκιμάστε :
Βιβλίο = Βιβλίο ( ** εισαγωγή )
Τυπώνω ( 'Λεπτομέρειες βιβλίου:' , Βιβλίο. τίτλος , Βιβλίο. συγγραφέας , Βιβλίο. έτος έκδοσης )
εκτός Εξαίρεση όπως και Είναι:
Τυπώνω ( 'Λάθος:' , είναι )

Συμπεριλαμβάνοντας αυτά τα προαιρετικά πεδία και τις προεπιλεγμένες τιμές, η Pydantic διασφαλίζει ότι τα δεδομένα παραμένουν καλά δομημένα και συνεπή ακόμα κι αν οι χρήστες δεν παρέχουν συγκεκριμένες λεπτομέρειες.

Μέθοδος 2: Χειρισμός δεδομένων με την Pydantic's Dataclass για τη φόρμα εγγραφής σπουδαστών

Φανταστείτε ότι κάνουμε μια φόρμα εγγραφής για μια σχολική εκδήλωση. Οι άνθρωποι πρέπει να εισάγουν τα στοιχεία τους και θέλουμε να αποφύγουμε λάθη. Εκεί βοηθούν οι τάξεις δεδομένων Pydantic. Φροντίζουν ότι τα δεδομένα είναι σωστά και τα χειρίζονται εύκολα.

Αφού φέρουμε τα απαραίτητα πακέτα στο έργο Python, ορίζουμε μια κλάση δεδομένων Pydantic δημιουργώντας μια κλάση δεδομένων Pydantic που ονομάζεται 'Student' για τις λεπτομέρειες των συμμετεχόντων.

από πυδατική εισαγωγή BaseModel

Χρησιμοποιήστε τον διακοσμητή τάξης για να δημιουργήσετε την τάξη «Μαθητής». Κληρονομεί από το BaseModel της Pydantic. Στο εσωτερικό, ονομάζουμε τα χαρακτηριστικά όπως όνομα, email, τμήμα και τηλέφωνο, το καθένα με τον τύπο δεδομένων του.

τάξη Μαθητης σχολειου ( BaseModel ) :

όνομα: str

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ : str

τμήμα: str

τηλέφωνο: str

Με τη χρήση της κλάσης δεδομένων Pydantic τώρα, εργαστείτε με την κλάση δεδομένων 'Student' για να διαχειριστείτε τα δεδομένα μαθητή:

πληροφορίες = {

'όνομα' : 'XYZ' ,

'ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ' : 'xyz@student.com' ,

'τμήμα' : 'Ανδρέας' ,

'τηλέφωνο' : '0003-4567234'

}

Σε αυτό το μέρος, προσποιούμαστε ότι κάποιος υπογράφει. Όταν κάνουμε μια παρουσία 'Student' χρησιμοποιώντας τα δεδομένα τους, η Pydantic ελέγχει αν ταιριάζει στη δομή. Εάν υπάρχει κάποιο σφάλμα, όπως ένα μήνυμα ηλεκτρονικού ταχυδρομείου χωρίς '@' ή ένα τμήμα χωρίς συμβολοσειρά, η Pydantic σταματά και εξηγεί το πρόβλημα.

μαθητης σχολειου = Μαθητης σχολειου ( **πληροφορίες )

Τυπώνω ( 'Στοιχεία μαθητή:' , μαθητης σχολειου )

Ο βελτιωμένος χειρισμός δεδομένων με χρήση κλάσεων δεδομένων Pydantic μας δίνει δεδομένα έτοιμα προς χρήση. Μπορούμε να προσθέσουμε περισσότερα πεδία, να ορίσουμε τις προεπιλογές ή να εργαστούμε με πολύπλοκες ρυθμίσεις δεδομένων. Όλα αυτά εγγυώνται ότι τα δεδομένα μας παραμένουν οργανωμένα.

Ο κώδικας και το απόσπασμα της εξόδου αναφέρονται παρακάτω για την παρατήρηση:

από πυδατική εισαγωγή BaseModel

τάξη Μαθητης σχολειου ( BaseModel ) :
όνομα: str
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ : str
τμήμα: str
τηλέφωνο: str

πληροφορίες = {
'όνομα' : 'XYZ' ,
'ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ' : 'xyz@student.com' ,
'τμήμα' : 'Ανδρέας' ,
'τηλέφωνο' : '0003-4567234'
}
μαθητης σχολειου = Μαθητης σχολειου ( **πληροφορίες )
Τυπώνω ( 'Στοιχεία μαθητή:' , μαθητης σχολειου )

Αφού παρατηρήσουμε την έξοδο, μπορούμε να συνοψίσουμε ότι οι κλάσεις δεδομένων Pydantic κάνουν τον χειρισμό των δεδομένων ομαλά σε αυτό το απλό παράδειγμα. Φροντίζουν ώστε η είσοδος να ταιριάζει με αυτό που θέλουμε. Αυτό σημαίνει λιγότερα σφάλματα και πιο χαρούμενους χρήστες.

συμπέρασμα

Οι Pydantic dataclasses ενσωματώνουν τον τρόπο με τον οποίο αντιμετωπίζουμε τα δεδομένα. Εγγυούνται ότι οι πληροφορίες είναι ακριβείς και ταιριάζουν στην απαιτούμενη δομή. Αυτό μεταφράζεται σε λιγότερα σφάλματα και περισσότερες άψογες εφαρμογές. Με το Pydantic, οι προγραμματιστές μπορούν να αφιερώσουν τις προσπάθειές τους στη δημιουργία εφαρμογών που λειτουργούν σωστά χωρίς να ενοχλούνται από ανησυχίες σχετικά με ζητήματα δεδομένων. Σκεφτείτε ότι έχετε έναν αποκλειστικό διαχειριστή εργασιών μόνο για τη διαχείριση των δεδομένων, διασφαλίζοντας ότι όλα εκτελούνται ομαλά από την αρχή μέχρι το τέλος.