Σε αυτό το σεμινάριο, θα μάθετε να αναλύετε, να διαβάζετε και να γράφετε το JSON στο Python με τη βοήθεια παραδειγμάτων. Επίσης, θα μάθετε να μετατρέπετε το JSON σε υπαγόρευση και να το εκτυπώνετε.
Το JSON ( J ava S cript O bject N otation) είναι μια δημοφιλής μορφή δεδομένων που χρησιμοποιείται για την αναπαράσταση δομημένων δεδομένων. Είναι σύνηθες να διαβιβάζετε και να λαμβάνετε δεδομένα μεταξύ διακομιστή και εφαρμογής ιστού σε μορφή JSON.
Στο Python, το JSON υπάρχει ως συμβολοσειρά. Για παράδειγμα:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Είναι επίσης κοινό να αποθηκεύετε ένα αντικείμενο JSON σε ένα αρχείο.
Εισαγωγή json Module
Για να εργαστείτε με το JSON (συμβολοσειρά ή αρχείο που περιέχει αντικείμενο JSON), μπορείτε να χρησιμοποιήσετε τη json
μονάδα Python . Πρέπει να εισαγάγετε τη λειτουργική μονάδα για να μπορέσετε να τη χρησιμοποιήσετε.
import json
Αναλύστε το JSON στο Python
Η json
ενότητα διευκολύνει την ανάλυση των συμβολοσειρών JSON και των αρχείων που περιέχουν αντικείμενο JSON.
Παράδειγμα 1: Python JSON για υπαγόρευση
Μπορείτε να αναλύσετε μια συμβολοσειρά JSON χρησιμοποιώντας τη json.loads()
μέθοδο. Η μέθοδος επιστρέφει ένα λεξικό.
import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))
Εδώ, το άτομο είναι μια συμβολοσειρά JSON και το πρόσωπο_dict είναι ένα λεξικό.
Παράδειγμα 2: Η Python διάβασε το αρχείο JSON
Μπορείτε να χρησιμοποιήσετε τη json.load()
μέθοδο για να διαβάσετε ένα αρχείο που περιέχει αντικείμενο JSON.
Ας υποθέσουμε ότι έχετε ένα όνομα person.json
που περιέχει ένα αντικείμενο JSON.
("name": "Bob", "languages": ("English", "Fench") )
Δείτε πώς μπορείτε να αναλύσετε αυτό το αρχείο:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Εδώ, χρησιμοποιήσαμε τη open()
συνάρτηση για να διαβάσουμε το αρχείο json. Στη συνέχεια, το αρχείο αναλύεται χρησιμοποιώντας json.load()
μέθοδο που μας δίνει ένα λεξικό που ονομάζεται δεδομένα.
Εάν δεν γνωρίζετε πώς να διαβάζετε και να γράφετε αρχεία στο Python, σας συνιστούμε να ελέγξετε το Python File I / O.
Python Μετατροπή σε συμβολοσειρά JSON
Μπορείτε να μετατρέψετε ένα λεξικό σε συμβολοσειρά JSON χρησιμοποιώντας τη json.dumps()
μέθοδο.
Παράδειγμα 3: Μετατροπή υπαγόρευσης σε JSON
import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json)
Ακολουθεί ένας πίνακας που δείχνει τα αντικείμενα Python και την αντίστοιχη μετατροπή τους σε JSON.
Πύθων | Ισοδύναμο JSON |
---|---|
dict | αντικείμενο |
list , tuple | πίνακας |
str | σειρά |
int , float ,int | αριθμός |
True | αληθής |
False | ψευδής |
None | μηδενικό |
Γράφοντας JSON σε ένα αρχείο
Για να γράψουμε το JSON σε ένα αρχείο στο Python, μπορούμε να χρησιμοποιήσουμε τη json.dump()
μέθοδο.
Παράδειγμα 4: Σύνταξη JSON σε αρχείο
import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file)
Στο παραπάνω πρόγραμμα, έχουμε ανοίξει ένα αρχείο που ονομάζεται person.txt
σε λειτουργία γραφής χρησιμοποιώντας 'w'
. Εάν το αρχείο δεν υπάρχει ήδη, θα δημιουργηθεί. Στη συνέχεια, json.dump()
μετατρέπεται person_dict
σε συμβολοσειρά JSON που θα αποθηκευτεί στο person.txt
αρχείο.
Όταν εκτελείτε το πρόγραμμα, το person.txt
αρχείο θα δημιουργηθεί. Το αρχείο έχει κείμενο που ακολουθεί.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python όμορφη εκτύπωση JSON
Για την ανάλυση και τον εντοπισμό σφαλμάτων δεδομένων JSON, ίσως χρειαστεί να τα εκτυπώσουμε σε πιο ευανάγνωστη μορφή. Αυτό μπορεί να γίνει μεταβιβάζοντας επιπλέον παραμέτρους indent
και sort_keys
σε json.dumps()
και json.dump()
μέθοδο.
Παράδειγμα 5: Python όμορφη εκτύπωση JSON
import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True))
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
("γλώσσες": "Αγγλικά", "όνομα": "Μπομπ", "αριθμοί": (2, 1.6, null))
Στο παραπάνω πρόγραμμα, χρησιμοποιήσαμε 4
κενά για εσοχή. Και, τα πλήκτρα ταξινομούνται σε αύξουσα σειρά.
Παρεμπιπτόντως, η προεπιλεγμένη τιμή της εσοχής είναι None
. Και, η προεπιλεγμένη τιμή του sort_keys είναι False
.
Προτεινόμενες αναγνώσεις:
- Python JSON σε CSV και αντίστροφα
- Python XML σε JSON και αντίστροφα
- Python simplejson