Το JSON είναι μια σύνταξη για την αποθήκευση και ανταλλαγή δεδομένων.Το JSON είναι κείμενο, γραμμένο με τη σημείωση αντικειμένων JavaScript.
Η Python διαθέτει ένα ενσωματωμένο πακέτο με το όνομα json, το οποίο μπορεί να χρησιμοποιηθεί για την εργασία με δεδομένα JSON.
Παράδειγμα
Εισάγετε το module json:
import json
Αν έχετε μια συμβολοσειρά JSON, μπορείτε να την αναλύσετε χρησιμοποιώντας τη μέθοδο json.loads().
Παράδειγμα
Μετατροπή από JSON σε Python:
import json # Μια συμβολοσειρά JSON json_string = '{"name": "John", "age": 30, "city": "New York"}' # Μετατροπή από JSON σε Python python_dict = json.loads(json_string) print(python_dict)
Σε αυτό το παράδειγμα, η συμβολοσειρά JSON μετατρέπεται σε ένα λεξικό Python χρησιμοποιώντας τη μέθοδο json.loads(). Το αποτέλεσμα είναι ένα λεξικό Python που περιέχει τα ίδια δεδομένα με τη συμβολοσειρά JSON.
Αν έχετε ένα αντικείμενο Python, μπορείτε να το μετατρέψετε σε μια συμβολοσειρά JSON χρησιμοποιώντας τη μέθοδο json.dumps().
Παράδειγμα
Μετατροπή από Python σε JSON:
import json # Ένα λεξικό Python python_dict = {"name": "John", "age": 30, "city": "New York"} # Μετατροπή από Python σε JSON json_string = json.dumps(python_dict) print(json_string)
Σε αυτό το παράδειγμα, το λεξικό Python μετατρέπεται σε μια συμβολοσειρά JSON χρησιμοποιώντας τη μέθοδο json.dumps(). Το αποτέλεσμα είναι μια συμβολοσειρά JSON που περιέχει τα ίδια δεδομένα με το λεξικό Python.
[adinserter block=”2″]
Μπορείτε να μετατρέψετε αντικείμενα Python των παρακάτω τύπων, σε συμβολοσειρές JSON:
- dict
- list
- tuple
- string
- int
- float
- True
- False
- None
Παράδειγμα
Μετατροπή αντικειμένων Python σε συμβολοσειρές JSON και εκτύπωση των τιμών:
import json # Python objects dict_obj = {"name": "John", "age": 30, "city": "New York"} list_obj = ["apple", "banana", "cherry"] tuple_obj = ("apple", "banana", "cherry") str_obj = "hello" int_obj = 42 float_obj = 3.14 bool_obj = True none_obj = None # Convert Python objects to JSON strings json_dict = json.dumps(dict_obj) json_list = json.dumps(list_obj) json_tuple = json.dumps(tuple_obj) json_str = json.dumps(str_obj) json_int = json.dumps(int_obj) json_float = json.dumps(float_obj) json_bool = json.dumps(bool_obj) json_none = json.dumps(none_obj) # Print JSON strings print("Dictionary:", json_dict) print("List:", json_list) print("Tuple:", json_tuple) print("String:", json_str) print("Integer:", json_int) print("Float:", json_float) print("Boolean:", json_bool) print("None:", json_none)
Σε αυτό το παράδειγμα, διάφορα αντικείμενα Python μετατρέπονται σε συμβολοσειρές JSON χρησιμοποιώντας τη μέθοδο json.dumps() και εκτυπώνονται τα αποτελέσματα.
Όταν μετατρέπετε από Python σε JSON, τα αντικείμενα Python μετατρέπονται στο ισοδύναμο του JSON (JavaScript):
Python | JSON |
---|---|
dict | Object |
list | Array |
tuple | Array |
str | String |
int | Number |
float | Number |
True | true |
False | false |
None | null |
[adinserter block=”3″]
Παράδειγμα
Μετατρέψτε ένα αντικείμενο Python που περιέχει όλους τους νόμιμους τύπους δεδομένων:
import json # Ένα αντικείμενο Python που περιέχει όλους τους νόμιμους τύπους δεδομένων python_obj = { "name": "John", "age": 30, "married": True, "divorced": False, "children": ("Ann", "Billy"), "pets": None, "cars": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1} ] } # Μετατροπή του αντικειμένου Python σε JSON json_string = json.dumps(python_obj) print(json_string)
Σε αυτό το παράδειγμα, ένα αντικείμενο Python που περιέχει όλους τους νόμιμους τύπους δεδομένων μετατρέπεται σε συμβολοσειρά JSON χρησιμοποιώντας τη μέθοδο json.dumps().
Το παράδειγμα παραπάνω εκτυπώνει μια συμβολοσειρά JSON, αλλά δεν είναι πολύ εύκολο να την διαβάσετε, χωρίς εσοχές και αλλαγές γραμμής.
Η μέθοδος json.dumps() έχει παραμέτρους για να κάνει πιο εύκολη την ανάγνωση του αποτελέσματος:
import json # Ένα αντικείμενο Python που περιέχει όλους τους νόμιμους τύπους δεδομένων python_obj = { "name": "John", "age": 30, "married": True, "divorced": False, "children": ("Ann", "Billy"), "pets": None, "cars": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1} ] } # Μετατροπή του αντικειμένου Python σε JSON με εσοχές και αλλαγές γραμμής json_string = json.dumps(python_obj, indent=4, separators=(". ", " = "), sort_keys=True) print(json_string)
Σε αυτό το παράδειγμα, οι παράμετροι indent, separators και sort_keys της μεθόδου json.dumps() χρησιμοποιούνται για να κάνουν τη συμβολοσειρά JSON πιο ευανάγνωστη, προσθέτοντας εσοχές, αλλαγές γραμμής και ταξινομώντας τα κλειδιά.
Μπορείτε επίσης να ορίσετε τους διαχωριστές, η προεπιλεγμένη τιμή είναι (“, “, “: “), που σημαίνει ότι χρησιμοποιείτε ένα κόμμα και ένα κενό για να διαχωρίσετε κάθε αντικείμενο, και ένα άνω και κάτω τελεία και ένα κενό για να διαχωρίσετε τα κλειδιά από τις τιμές:
Παράδειγμα
Χρησιμοποιήστε την παράμετρο separators για να αλλάξετε τον προεπιλεγμένο διαχωριστή:
import json # Ένα αντικείμενο Python που περιέχει όλους τους νόμιμους τύπους δεδομένων python_obj = { "name": "John", "age": 30, "married": True, "divorced": False, "children": ("Ann", "Billy"), "pets": None, "cars": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1} ] } # Μετατροπή του αντικειμένου Python σε JSON με εναλλακτικούς διαχωριστές json_string = json.dumps(python_obj, indent=4, separators=("; ", " = ")) print(json_string)
[adinserter block=”4″]
Στο παραπάνω παράδειγμα, η παράμετρος separators χρησιμοποιείται για να αλλάξει τους προεπιλεγμένους διαχωριστές σε εμφώλευση και ένα κενό, και ένα άνω και κάτω τελεία και ένα κενό.
Η μέθοδος json.dumps() έχει παραμέτρους για να ταξινομήσει τα κλειδιά στο αποτέλεσμα:
Παράδειγμα
Χρησιμοποιήστε την παράμετρο sort_keys για να καθορίσετε εάν το αποτέλεσμα πρέπει να ταξινομηθεί ή όχι:
import json # Ένα αντικείμενο Python που περιέχει όλους τους νόμιμους τύπους δεδομένων python_obj = { "name": "John", "age": 30, "married": True, "divorced": False, "children": ("Ann", "Billy"), "pets": None, "cars": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1} ] } # Μετατροπή του αντικειμένου Python σε JSON με ταξινόμηση των κλειδιών json_string = json.dumps(python_obj, indent=4, sort_keys=True) print(json_string)
Στο παραπάνω παράδειγμα, η παράμετρος sort_keys χρησιμοποιείται για να καθορίσει εάν τα κλειδιά στο αποτέλεσμα πρέπει να ταξινομηθούν ή όχι. Όταν η τιμή της παραμέτρου είναι True, τα κλειδιά ταξινομούνται σε αλφαβητική σειρά.