Προχωρημένο Μάθημα Ανάπτυξης Python
Κεφάλαιο
>
Επίπεδο
Μονάδες Σειριοποίησης
Μονάδα JSON
Στόχος
Μεταβείτε στον σταθμό υπηρεσιών και βεβαιωθείτε ότι τα δεδομένα αποθηκεύονται σωστά χρησιμοποιώντας το module JSON για τη μορφοποίηση των αρχείων.
Υπάρχει ένας σταθμός υπηρεσιών νότια από το κτίριο προσθήκης στην περιοχή νέας κατασκευής. Ολόκληρη αυτή η περιοχή πρόκειται να αναδιαμορφωθεί για καλλιέργειες. Ο σταθμός διαθέτει διάφορους τερματικούς που επεξεργάζονται δεδομένα για τη νέα ανάπτυξη. Μπορούμε να καταχωρίζουμε τα δεδομένα χειροκίνητα, αλλά αυτό θα απαιτούσε πολύ χρόνο. Για τη διαδικασία διαχείρισης δεδομένων μπορούμε να χρησιμοποιήσουμε το JSON, που σημαίνει JavaScript Object Notation. Πρόκειται για ένα μορφότυπο δεδομένων ανεξάρτητο από γλώσσες προγραμματισμού το οποίο αποθηκεύει πληροφορίες με τρόπο ευανάγνωστο, κατάλληλο για αποθήκευση και μετάδοση δεδομένων.
Για να χρησιμοποιήσουμε JSON με Python, μπορούμε να γράψουμε import json, το οποίο θα μας δώσει πρόσβαση στις συναρτήσεις JSON. Για τους σκοπούς μας θα χρησιμοποιήσουμε τις ακόλουθες συναρτήσεις:
json.loads(): Μετατρέπει μια συμβολοσειρά JSON σε δεδομένα Python. Δέχεται ένα όρισμα, τη συμβολοσειρά που θέλετε να αναλύσετε σε Python.json.dumps(): Μετατρέπει δεδομένα Python σε αντικείμενο συμβολοσειράς JSON. Αυτή η συνάρτηση μπορεί να λάβει έως τέσσερα (4) ορίσματα· μόνο το πρώτο είναι υποχρεωτικό για τη χρήση της. Είναι τα ακόλουθα.- Τα δεδομένα Python που θέλετε να μετατρέψετε σε JSON: μπορούν να είναι ένας από τους ακόλουθους τύπους δεδομένων: dictionaries, lists, tuples, string, integer, float, boolean και None.
indent: αριθμός κενών που θέλετε να προσθέσετε στην αρχή κάθε σημείου δεδομένων.separators: αυτά είναι τα στοιχεία που θέλετε να εμφανίζονται ανάμεσα ή/και στο τέλος των σημείων δεδομένων.sort_keys: ταξινομεί αλφαβητικά τα κλειδιά ενός dictionary εάν μετατρέπετε ένα αρχείο τύπου dictionary.
Για να ξεκινήσετε, μεταβείτε στο χρυσό σήμα X στο φυλάκιο αριστερά και στρέψτε τον χαρακτήρα στο γραφείο με το σημείωμα. Χρησιμοποιήστε τη συνάρτηση read() για να επαληθεύσετε τις πληροφορίες που απαιτούνται για να επιβεβαιώσετε την κατάσταση του τερματικού και σημειώστε τις. Περπατήστε στο ανοιχτό σήμα X μπροστά από τον τερματικό, υπάρχει μια σταθερά με όνομα transmission. Χρησιμοποιήστε το json.dumps() για να τη μορφοποιήσετε ως JSON ώστε να μπορούμε να τη μετατρέψουμε, ως εξής: transmission = json.dumps(transmission).
Δημιουργήστε ένα dictionary με όνομα load και αποθηκεύστε σε αυτό την τιμή της json.loads() με τη σταθερά transmission ως όρισμα. Αυτό θα μετατρέψει το JSON σε Python ώστε οι πληροφορίες να είναι εύκολα προσβάσιμες. Χρησιμοποιήστε τη συνάρτηση speak() με τα κλειδιά που αναγράφονται στο σημείωμα και χρησιμοποιώντας το dictionary load που δημιουργήσατε. Για παράδειγμα: player.speak(load["system"]), κάντε το για όλα τα κλειδιά.
Μετά τον έλεγχο των πληροφοριών στον τερματικό, κατευθυνθείτε προς τον σταθμό, μπείτε μέσα και πηγαίνετε στο ανοιχτό σήμα X πάνω από το πράσινο χαλί. Ελέγξτε το σημείωμα χρησιμοποιώντας τη συνάρτηση read(), ελέγξτε και σημειώστε τις τιμές. Στον επεξεργαστή υπάρχει ένα προ-γράμμενο dictionary με όνομα profile. Συμπληρώστε τις ελλείπουσες τιμές με τις πληροφορίες από το σημείωμα.
Περπατήστε μέχρι το σκοτεινό σήμα X πάνω από το πράσινο χαλί, στρέψτε τον χαρακτήρα προς τον τερματικό και δημιουργήστε μια μεταβλητή με όνομα transfer, στην οποία θα αποθηκεύσετε την τιμή της json.dumps() προσθέτοντας ως μοναδικό όρισμα το dictionary profile. Με αυτό μετατρέπουμε το dictionary σε αντικείμενο-συμβολοσειρά JSON. Χρησιμοποιήστε την προ-γραμμένη συνάρτηση display() και προσθέστε το JSON transfer για να αποθηκευτούν τα δεδομένα στον τερματικό.
Περπατήστε μέχρι το σκοτεινό σήμα X πάνω από το κόκκινο χαλί και χρησιμοποιήστε τη συνάρτηση read() για να επαληθεύσετε τα δεδομένα που έχουν ήδη εισαχθεί στον τερματικό. Τα δεδομένα δεν παρουσιάζονται σε κατάλληλη μορφή. Για να αποθηκευτούν σωστά οι πληροφορίες, πρέπει να αποθηκευτούν και να μορφοποιηθούν σε JSON. Τα δεδομένα είναι αποθηκευμένα σε μια σταθερά dictionary που ονομάζεται red_data. Δημιουργήστε μια μεταβλητή με όνομα red_storage και αποθηκεύστε σε αυτή την τιμή της συνάρτησης json.dumps().
Για να μορφοποιήσετε τα δεδομένα, προσθέστε τα ακόλουθα ορίσματα στη συνάρτηση: προσθέστε το red_data για να μετατρέψετε τη σταθερά σε JSON, προσθέστε το indent και ορίστε το σε 5 για να μορφοποιήσετε το κείμενο, προσθέστε το separators και ορίστε το σε ("- ", " = ") για να προστεθούν αυτά τα σύμβολα στο τέλος κάθε γραμμής. Η γραμμή πρέπει να μοιάζει έτσι: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Χρησιμοποιήστε την προ-γραμμένη display() και προσθέστε τη συμβολοσειρά JSON red_storage για να αποθηκεύσετε και να εμφανίσετε τα μορφοποιημένα δεδομένα.
Περπατήστε μέχρι το σκοτεινό σήμα X πάνω από το μπλε χαλί, στρέψτε τον χαρακτήρα προς τον τερματικό και χρησιμοποιήστε τη συνάρτηση read(). Όπως και πριν, τα δεδομένα δεν είναι αποθηκευμένα σωστά και πρέπει να μορφοποιηθούν αλλά και να ταξινομηθούν. Τα δεδομένα είναι αποθηκευμένα σε μια σταθερά με όνομα blue_data. Δημιουργήστε μια μεταβλητή με όνομα blue_storage και αποθηκεύστε σε αυτή την τιμή της συνάρτησης json.dumps().
Για τα ορίσματα: προσθέστε το blue_data για να μετατρέψετε τη σταθερά σε JSON, προσθέστε το indent και ορίστε το σε 4 για να μορφοποιήσετε το κείμενο, προσθέστε το separators και ορίστε το σε (".0", " = ") για να προστεθούν αυτά τα σύμβολα στο τέλος κάθε γραμμής. Επιπλέον, προσθέστε το όρισμα sort_keys ως τελικό όρισμα και ορίστε το σε True, όπως εδώ: sort_keys=True. Χρησιμοποιήστε την προ-γραμμένη display() και προσθέστε τη συμβολοσειρά JSON blue_storage για να αποθηκεύσετε και να εμφανίσετε τα ταξινομημένα δεδομένα και να ολοκληρώσετε το επίπεδο.