Python JSON: Διαβάστε, γράψτε, αναλύστε το JSON (με παραδείγματα)

Σε αυτό το σεμινάριο, θα μάθετε να αναλύετε, να διαβάζετε και να γράφετε το 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

ενδιαφέροντα άρθρα...