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 се използва модулът simplejson, докато в Python 2.7 се използва модулът json. Тъй като този интерпретатор използва Python 2.7, ще използваме json.
За да използвате модула json, първо трябва да бъде импортиран:
import json
Съществуват два основни формата за JSON данни. Или във вид на низ, или под формата на структура от данни. Структурата от данни в Python се състои от списъци и речници, вложени един в друг. Структурата от данни позволява използването на методи на Python (за списъци и речници) за добавяне, изброяване, търсене и премахване на елементи от структурата. Форматът String основно се използва, за да се предават данните в друга програма или да се зареждат в структура от данни.
За да се зареди 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 поддържа собствен метод за сериализация на данни, наречен 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!