Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Σειριοποίηση
Το Python παρέχει ενσωματωμένες βιβλιοθήκες JSON για κωδικοποίηση και αποκωδικοποίηση JSON.
Στο Python 2.5, το module simplejson χρησιμοποιείται, ενώ στο Python 2.7, το module json χρησιμοποιείται. Δεδομένου ότι αυτός ο διερμηνέας χρησιμοποιεί Python 2.7, θα χρησιμοποιήσουμε το json.
Για να χρησιμοποιήσετε το module json, πρέπει πρώτα να εισαχθεί:
import json
Υπάρχουν δύο βασικές μορφές για τα δεδομένα JSON. Είτε σε μορφή συμβολοσειράς είτε σε δομή δεδομένων αντικειμένου. Η δομή δεδομένων αντικειμένου, στο Python, αποτελείται από λίστες και λεξικά που περιέχονται το ένα μέσα στο άλλο. Η δομή δεδομένων αντικειμένου επιτρέπει τη χρήση μεθόδων python (για λίστες και λεξικά) για την προσθήκη, την αναφορά, την αναζήτηση και την αφαίρεση στοιχείων από τη δομή δεδομένων. Η μορφή συμβολοσειράς χρησιμοποιείται κυρίως για τη μεταφορά των δεδομένων σε άλλο πρόγραμμα ή τη φόρτωσή τους σε μια δομή δεδομένων.
Για να φορτωθούν τα JSON ξανά σε μια δομή δεδομένων, χρησιμοποιήστε τη μέθοδο "loads". Αυτή η μέθοδος παίρνει μια συμβολοσειρά και τη μετατρέπει ξανά στη δομή δεδομένων αντικειμένου json:
import json
print(json.loads(json_string))
Για να κωδικοποιήσετε μια δομή δεδομένων σε JSON, χρησιμοποιήστε τη μέθοδο "dumps". Αυτή η μέθοδος παίρνει ένα αντικείμενο και επιστρέφει μια Συμβολοσειρά:
import json
json_string = json.dumps([1, 2, 3, "a", "b", "c"])
print(json_string)
Το Python υποστηρίζει μια ιδιόκτητη μέθοδο σειριοποίησης δεδομένων του Python που ονομάζεται pickle (και μια ταχύτερη εναλλακτική που ονομάζεται cPickle).
Μπορείτε να το χρησιμοποιήσετε με τον ίδιο ακριβώς τρόπο.
import pickle
pickled_string = pickle.dumps([1, 2, 3, "a", "b", "c"])
print(pickle.loads(pickled_string))
Άσκηση--------
Ο στόχος αυτής της άσκησης είναι η εκτύπωση της συμβολοσειράς JSON με το ζεύγος "Me" : 800 προστιθέμενο σε αυτήν.
import json
# fix this function, so it adds the given name
# and salary pair to salaries_json, and return it
def add_employee(salaries_json, name, salary):
# Add your code here
return salaries_json
# test code
salaries = '{"Alfred" : 300, "Jane" : 400 }'
new_salaries = add_employee(salaries, "Me", 800)
decoded_salaries = json.loads(new_salaries)
print(decoded_salaries["Alfred"])
print(decoded_salaries["Jane"])
print(decoded_salaries["Me"])
import json
# fix this function, so it adds the given name
# and salary pair to salaries_json, and return it
def add_employee(salaries_json, name, salary):
salaries = json.loads(salaries_json)
salaries[name] = salary
return json.dumps(salaries)
# test code
salaries = '{"Alfred" : 300, "Jane" : 400 }'
new_salaries = add_employee(salaries, "Me", 800)
decoded_salaries = json.loads(new_salaries)
print(decoded_salaries["Alfred"])
print(decoded_salaries["Jane"])
print(decoded_salaries["Me"])
test_output_contains("300")
test_output_contains("400")
test_output_contains("800")
success_msg("Great work!")
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!