Η συντακτική δομή 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)

# Εκτύπωση του λεξικού Python
print(python_dict)

Ο κώδικας αντιστοιχεί στις παρακάτω ενέργειες:

  1. Εισάγεται η βιβλιοθήκη json.
  2. Δημιουργείται μια συμβολοσειρά JSON με τη μεταβλητή json_string, η οποία περιέχει τα δεδομένα ενός αντικειμένου σε μορφή JSON.
  3. Χρησιμοποιώντας τη συνάρτηση json.loads(), η οποία ανήκει στη βιβλιοθήκη json, το JSON μετατρέπεται σε δομή δεδομένων της Python, συγκεκριμένα σε ένα λεξικό, και αποθηκεύεται στη μεταβλητή python_dict.
  4. Εκτυπώνεται το περιεχόμενο του λεξικού python_dict, το οποίο περιέχει τα δεδομένα που αναπαριστούνταν από τη συμβολοσειρά JSON.

Ο κώδικας δηλαδή πραγματοποιεί τη μετατροπή ενός JSON σε ένα λεξικό της Python και εκτυπώνει το αποτέλεσμα.

Με τη χρήση της μεθόδου json.dumps(), μπορείτε να μετατρέψετε ένα αντικείμενο της Python σε μια συμβολοσειρά JSON.

[adinserter block=”2″]

Παράδειγμα
Μετατροπή από 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)

Ο κώδικας πραγματοποιεί τις παρακάτω ενέργειες:

  1. Εισάγει τη βιβλιοθήκη json.
  2. Δημιουργεί ένα λεξικό στην Python με τη μεταβλητή python_dict, το οποίο περιέχει τρία ζεύγη “κλειδί-τιμή”.
  3. Χρησιμοποιεί τη συνάρτηση dumps() της βιβλιοθήκης json για να μετατρέψει το λεξικό python_dict σε μια συμβολοσειρά JSON και την αποθηκεύει στη μεταβλητή json_string.
  4. Εκτυπώνει την τιμή της μεταβλητής json_string, η οποία περιέχει τη συμβολοσειρά JSON που αντιπροσωπεύει το λεξικό.

Συνολικά, ο κώδικας μετατρέπει ένα λεξικό στην Python σε μια συμβολοσειρά JSON και την εκτυπώνει.

Μπορείτε να μετατρέψετε αντικείμενα 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  # Μια λογική τιμή (True/False)
none_obj = None  # Η τιμή None

# Convert Python objects to JSON strings
json_dict = json.dumps(dict_obj)  # Μετατροπή του λεξικού σε JSON string
json_list = json.dumps(list_obj)  # Μετατροπή της λίστας σε JSON string
json_tuple = json.dumps(tuple_obj)  # Μετατροπή της πλειάδας σε JSON string
json_str = json.dumps(str_obj)  # Μετατροπή του αλφαριθμητικού σε JSON string
json_int = json.dumps(int_obj)  # Μετατροπή του ακεραίου σε JSON string
json_float = json.dumps(float_obj)  # Μετατροπή του δεκαδικού αριθμού σε JSON string
json_bool = json.dumps(bool_obj)  # Μετατροπή της λογικής τιμής σε JSON string
json_none = json.dumps(none_obj)  # Μετατροπή της τιμής None σε JSON string

# Print JSON strings
print("Dictionary:", json_dict)  # Εκτύπωση του JSON string για το λεξικό
print("List:", json_list)  # Εκτύπωση του JSON string για τη λίστα
print("Tuple:", json_tuple)  # Εκτύπωση του JSON string για την πλειάδα
print("String:", json_str)  # Εκτύπωση του JSON string για το αλφαριθμητικό
print("Integer:", json_int)  # Εκτύπωση του JSON string για τον ακέραιο αριθμό
print("Float:", json_float)  # Εκτύπωση του JSON string για τον δεκαδικό αριθμό
print("Boolean:", json_bool)  # Εκτύπωση του JSON string για τη λογική τιμή
print("None:", json_none)  # Εκτύπωση του JSON string για την τιμή None

[adinserter block=”3″]

Ο παραπάνω κώδικας πραγματοποιεί τις παρακάτω ενέργειες:

  1. Εισάγει τη βιβλιοθήκη json για την επεξεργασία JSON.
  2. Δημιουργεί διάφορα αντικείμενα Python όπως λεξικά, λίστες, πλειάδες, αλφαριθμητικά, ακέραιους αριθμούς, δεκαδικούς αριθμούς, λογικές τιμές και την τιμή None.
  3. Χρησιμοποιεί την συνάρτηση json.dumps() για να μετατρέψει τα αντικείμενα Python σε JSON strings.
  4. Εκτυπώνει τα JSON strings για κάθε αντικείμενο που δημιουργήθηκε.

Το αποτέλεσμα που προκύπτει από την εκτέλεση του παραπάνω κώδικα είναι:

Dictionary: {"name": "John", "age": 30, "city": "New York"}
List: ["apple", "banana", "cherry"]
Tuple: ["apple", "banana", "cherry"]
String: "hello"
Integer: 42
Float: 3.14
Boolean: true
None: null

Κάθε γραμμή εκτύπωσης εμφανίζει το αντίστοιχο JSON string για το αντίστοιχο αντικείμενο. Τα JSON strings ακολουθούν τη σύνταξη του JSON με διάφορους τύπους δεδομένων, όπως αντικείμενα, λίστες, αλφαριθμητικά, αριθμούς και τιμές null.

Όταν μετατρέπετε από Python σε JSON, τα αντικείμενα Python μετατρέπονται στο ισοδύναμο του JSON (JavaScript):

PythonJSON
dictObject
listArray
tupleArray
strString
intNumber
floatNumber
Truetrue
Falsefalse
Nonenull

Παράδειγμα
Μετατρέψτε ένα αντικείμενο 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)

Ο παραπάνω κώδικας πραγματοποιεί τις εξής ενέργειες:

  1. Εισάγει τη βιβλιοθήκη json, η οποία παρέχει λειτουργίες για τη μετατροπή αντικειμένων Python σε μορφή JSON και αντίστροφα.
  2. Δημιουργεί ένα αντικείμενο Python με τη μεταβλητή python_obj, το οποίο περιέχει διάφορους τύπους δεδομένων, όπως συμβολοσειρές, αριθμούς, λογικές τιμές, πλειάδες, λίστες και λεξικά.
  3. Χρησιμοποιεί τη συνάρτηση json.dumps() για να μετατρέψει το αντικείμενο Python σε μια μορφή JSON. Το αποτέλεσμα αποθηκεύεται στη μεταβλητή json_string.
  4. Εκτυπώνει την τιμή της μεταβλητής json_string, η οποία περιέχει το JSON string που προέκυψε από τη μετατροπή του αντικειμένου Python.

Το αποτέλεσμα που εμφανίζεται στην οθόνη είναι το εξής:

{"name": "John", "age": 30, "married": true, "divorced": false, "children": ["Ann", "Billy"], "pets": null, "cars": [{"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1}]}

Πρόκειται για το JSON string που αντιστοιχεί στο αρχικό αντικείμενο Python. Τα δεδομένα έχουν μετατραπεί σε μορφή 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)

# Εκτύπωση της συμβολοσειράς JSON
print(json_string)

[adinserter block=”4″]

Ο παραπάνω κώδικας περιλαμβάνει τις παρακάτω ενέργειες:

  1. Εισαγωγή της βιβλιοθήκης json.
  2. Δημιουργία ενός Python αντικειμένου με διάφορους τύπους δεδομένων, όπως συμβολοσειρές, αριθμούς, λογικές τιμές, πλειάδες, λίστες και λεξικά.
  3. Χρήση της συνάρτησης json.dumps() για να μετατραπεί το Python αντικείμενο σε μια συμβολοσειρά JSON.
  • Η παράμετρος indent=4 καθορίζει τον αριθμό των κενών διαστημάτων που χρησιμοποιούνται για τον εσοχισμό των δομών JSON.
  • Η παράμετρος separators=(". ", " = ") καθορίζει τους χαρακτήρες που χρησιμοποιούνται για τον διαχωρισμό των κλειδιών και των τιμών στις δομές JSON.
  • Η παράμετρος sort_keys=True καθορίζει αν τα κλειδιά του λεξικού θα ταξινομηθούν σε αύξουσα σειρά κατά τη μετατροπή σε JSON.

Εκτύπωση της συμβολοσειράς JSON.

Το αποτέλεσμα της εκτέλεσης του κώδικα θα είναι η εκτύπωση της συμβολοσειράς JSON που αντιστοιχεί στο αρχικό Python αντικείμενο. Η συμβολοσειρά θα περιέχει τα διάφορα στοιχ

εία του αντικειμένου ταξινομημένα και με την κατάλληλη μορφοποίηση που ορίστηκε από τις παραμέτρους της json.dumps().

Το αποτέλεσμα θα είναι η εκτύπωση της παρακάτω συμβολοσειράς JSON:

{
    "age" = 30,
    "cars" = [
        {
            "model" = "BMW 230",
            "mpg" = 27.5
        },
        {
            "model" = "Ford Edge",
            "mpg" = 24.1
        }
    ],
    "children" = [
        "Ann",
        "Billy"
    ],
    "divorced" = false,
    "married" = true,
    "name" = "John",
    "pets" = null
}

Αυτή η συμβολοσειρά περιέχει τα στοιχεία του αρχικού Python αντικειμένου με την κατάλληλη μορφοποίηση για την αναπαράστασή του σε μορφή JSON. Τα κλειδιά των λεξικών είναι ταξινομημένα και οι τιμές έχουν αντιστοιχιστεί σε κατάλληλους τύπους δεδομένων στη συμβολοσειρά JSON.

Παράδειγμα
Μπορείτε να χρησιμοποιήσετε την παράμετρο separators για να προσαρμόσετε τους διαχωριστές που χρησιμοποιούνται στη μετατροπή ενός Python αντικειμένου σε μια συμβολοσειρά JSON. Αυτή η παράμετρος σας επιτρέπει να ορίσετε διαφορετικούς διαχωριστές για τα κλειδιά και τις τιμές του λεξικού.

import json

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 string
json_string = json.dumps(python_obj, indent=4, separators=("; ", " = "))

# Εκτύπωση του JSON string
print(json_string)

Το πρόγραμμα παραπάνω κάνει τα εξής:

  1. Εισάγει τη βιβλιοθήκη json.
  2. Ορίζει ένα Python λεξικό με όνομα python_obj που περιέχει πληροφορίες για ένα προσωπικό στοιχείο, όπως το όνομα, η ηλικία, η οικογενειακή κατάσταση, τα παιδιά και τα αυτοκίνητα.
  3. Χρησιμοποιεί τη συνάρτηση json.dumps() για να μετατρέψει το Python λεξικό σε μια μορφή JSON string.
  4. Ορίζει τη μορφή του JSON string με χρήση των παραμέτρων indent=4 και separators=("; ", " = "), προκειμένου να προσδιοριστούν οι αναστολείς γραμμής και οι διαχωριστικοί χαρακτήρες.
  5. Εκτυπώνει το JSON string.

Το αποτέλεσμα που εμφανίζεται στην οθόνη είναι η μετατροπή του python_obj σε ένα JSON string, με διαχωριστικούς χαρακτήρες “;” και “=”, και με κάθε επίπεδο εσοχής που αντιστοιχεί σε 4 κενά. Το ακριβές αποτέλεσμα θα εξαρτηθεί από την υλοποίηση της βιβλιοθήκης json στο περιβάλλον Python που τρέχετε.

[adinserter block=”5″]

Το αποτέλεσμα εξαρτάται από την υλοποίηση της βιβλιοθήκης json και την έκδοση της Python που χρησιμοποιείτε. Ωστόσο, το αναμενόμενο αποτέλεσμα είναι η εκτύπωση του JSON string στην οθόνη, με τη δομή και τη μορφοποίηση που ορίστηκε από τις παραμέτρους indent=4 και separators=("; ", " = ").

Ένα πιθανό αποτέλεσμα θα μπορούσε να είναι το εξής:

{
    "name" = "John";
    "age" = 30;
    "married" = true;
    "divorced" = false;
    "children" = [
        "Ann";
        "Billy"
    ];
    "pets" = null;
    "cars" = [
        {
            "model" = "BMW 230";
            "mpg" = 27.5
        };
        {
            "model" = "Ford Edge";
            "mpg" = 24.1
        }
    ]
}

Ωστόσο, το ακριβές αποτέλεσμα θα εξαρτηθεί από τη συγκεκριμένη υλοποίηση της βιβλιοθήκης json στο περιβάλλον Python που χρησιμοποιείτε.

Η μέθοδος json.dumps() παρέχει παραμέτρους που επιτρέπουν την ταξινόμηση των κλειδιών στο αποτέλεσμα.
Μπορείτε να χρησιμοποιήσετε την παράμετρο sort_keys για να ελέγξετε εάν το αποτέλεσμα πρέπει να ταξινομηθεί ή όχι. Η παράμετρος sort_keys αποδέχεται μια λογική τιμή (True ή False) και καθορίζει εάν τα κλειδιά του λεξικού πρέπει να ταξινομηθούν πριν από τη μετατροπή τους σε JSON string.

Έτσι, αν ορίσετε sort_keys=True, τότε τα κλειδιά του λεξικού θα ταξινομηθούν σε αύξουσα σειρά πριν από τη μετατροπή τους σε JSON string. Αν ορίσετε sort_keys=False, τα κλειδιά θα διατηρηθούν στην αρχική τους σειρά.

Παράδειγμα

import json

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 string
json_string = json.dumps(python_obj, indent=4, sort_keys=True)

# Εκτύπωση του JSON string
print(json_string)

Ο κώδικας που δόθηκε πραγματοποιεί τη μετατροπή ενός αντικειμένου Python σε μορφή JSON και εκτυπώνει το JSON string στην οθόνη.

Πιο συγκεκριμένα, ο κώδικας ξεκινά με τη δημιουργία ενός Python dictionary με το όνομα python_obj. Το dictionary περιέχει διάφορα κλειδιά και τιμές που αντιπροσωπεύουν πληροφορίες όπως το όνομα, η ηλικία, το αν είναι παντρεμένος, το αν έχει παιδιά, τα κατοικίδιά του και τα αυτοκίνητά του.

Στη συνέχεια, η συνάρτηση json.dumps() χρησιμοποιείται για να μετατραπεί το python_obj σε ένα JSON string. Οι παράμετροι indent=4 και sort_keys=True χρησιμοποιούνται για να προσθέσουν κενά προθέματα στις γραμμές του JSON για καλύτερη αναγνωσιμότητα και για να ταξινομήσουν τα κλειδιά του JSON κατά αλφαβητική σειρά.

Τέλος, το JSON string εκτυπώνεται στην οθόνη μέσω της εντολής print(json_string).

Το αποτέλεσμα που θα εμφανιστεί στην οθόνη θα είναι το ακόλουθο:

{
    "age": 30,
    "cars": [
        {
            "model": "BMW 230",
            "mpg": 27.5
        },
        {
            "model": "Ford Edge",
            "mpg": 24.1
        }
    ],
    "children": [
        "Ann",
        "Billy"
    ],
    "divorced": false,
    "married": true,
    "name": "John",
    "pets": null
}

Αυτό είναι

το JSON string που αντιστοιχεί στο αντικείμενο Python python_obj, με τις κατάλληλες περιοχές στοιχείων και αλφαβητική ταξινόμηση των κλειδιών.

8 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων