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
Serializace
Python poskytuje vestavěné knihovny JSON pro kódování a dekódování JSON.
V Pythonu 2.5 se používá modul simplejson, zatímco v Pythonu 2.7 se používá modul json. Protože tento interpret používá Python 2.7, budeme používat json.
Abychom mohli používat modul json, musíme jej nejprve importovat:
Existují dva základní formáty pro JSON data. Buď ve formě řetězce, nebo objektové datové struktury. Objektová datová struktura v Pythonu se skládá ze seznamů a slovníků vnořených do sebe navzájem. Objektová datová struktura umožňuje používat pythonové metody (pro seznamy a slovníky) k přidávání, zobrazování, vyhledávání a odstraňování prvků z datové struktury. Formát řetězce se používá především k přenosu dat do jiného programu nebo jejich načítání do datové struktury.
Pro načtení JSON zpět do datové struktury použijte metodu "loads". Tato metoda vezme řetězec a převede jej zpět do json objektové datové struktury:
Pro kódování datové struktury do JSON použijte metodu "dumps". Tato metoda vezme objekt a vrátí řetězec:
Python podporuje interní metodu serializace dat Pythonu nazvanou pickle (a rychlejší alternativu nazvanou cPickle).
Můžete ji použít naprosto stejným způsobem.
Cílem tohoto cvičení je vytisknout JSON řetězec s přidaným párem klíč-hodnota "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!