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
Sarjoittaminen
Python tarjoaa sisäänrakennettuja JSON-kirjastoja JSON:n koodaamiseen ja dekoodaamiseen.
Python 2.5:ssä käytetään simplejson-moduulia, kun taas Python 2.7:ssä käytetään json-moduulia. Koska tämä tulkki käyttää Python 2.7:ää, käytämme json-moduulia.
Jotta json-moduulia voisi käyttää, se täytyy ensin tuoda:
import json
JSON-datalle on kaksi perusmuotoa. Joko merkkijonona tai objektien tietorakenteena. Objektien tietorakenne Pythonissa koostuu toistensa sisälle sijoitetuista listoista ja sanakirjoista. Tietorakenne mahdollistaa python-menetelmien (listoille ja sanakirjoille) käytön elementtien lisäämiseksi, listaamiseksi, etsimiseksi ja poistamiseksi tietorakenteesta. Merkkijonomuotoa käytetään pääasiassa datan siirtämiseen toiseen ohjelmaan tai lataamiseen tietorakenteeseen.
JSON:n lataamiseksi takaisin tietorakenteeksi käytä "loads"-menetelmää. Tämä menetelmä ottaa merkkijonon ja muuttaa sen takaisin json-objektin tietorakenteeksi:
import json
print(json.loads(json_string))
Tietorakenteen koodaamiseksi JSON-muotoon käytä "dumps"-menetelmää. Tämä menetelmä ottaa objektin ja palauttaa merkkijonon:
import json
json_string = json.dumps([1, 2, 3, "a", "b", "c"])
print(json_string)
Python tukee Pythonin omaa tiedon sarjallistamismenetelmää nimeltä pickle (sekä nopeampaa vaihtoehtoa nimeltä cPickle).
Voit käyttää sitä täsmälleen samalla tavalla.
import pickle
pickled_string = pickle.dumps([1, 2, 3, "a", "b", "c"])
print(pickle.loads(pickled_string))
Harjoituksen tarkoituksena on tulostaa JSON-merkkijono, johon on lisätty avain-arvopari "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!