Ответы:
JSON - это формат, который кодирует объекты в строку. Сериализация означает преобразование объекта в эту строку , а десериализация - это обратная операция (преобразование строки -> объект) .
При передаче данных или хранении их в файле данные должны быть байтовыми строками, но сложные объекты редко бывают в этом формате. Сериализация может преобразовывать эти сложные объекты в байтовые строки для такого использования. После того, как байтовые строки будут переданы, получатель должен будет восстановить исходный объект из байтовой строки. Это известно как десериализация.
Скажем, у вас есть объект:
{foo: [1, 4, 7, 10], bar: "baz"}
сериализация в JSON преобразует его в строку:
'{"foo":[1,4,7,10],"bar":"baz"}'
которые можно хранить или отправлять по телеграфу куда угодно. Затем получатель может десериализовать эту строку, чтобы вернуть исходный объект. {foo: [1, 4, 7, 10], bar: "baz"}
,
"{foo: [1, 4, 7, 10], bar: "baz"}"
В контексте хранения данных сериализация (или сериализация) - это процесс преобразования структур данных или состояния объекта в формат, который может быть сохранен (например, в файле или буфере памяти) или передан (например, через сетевое соединение). ссылка) и реконструирован позже. [...]
Противоположная операция, извлечение структуры данных из серии байтов, - это десериализация .Из Википедии
В Python «сериализация» не делает ничего, кроме преобразования заданной структуры данных (например, a dict
) в ее действительный кулон (объект) JSON.
True
будет преобразован в JSON, true
а сам словарь будет заключен в кавычки.True
/ False
,true
/false
json
- это стандартный способ сериализации:Пример кода:
data = {
"president": {
"name": "Zaphod Beeblebrox",
"species": "Betelgeusian",
"male": True,
}
}
import json
json_data = json.dumps(data, indent=2) # serialize
restored_data = json.loads(json_data) # deserialize
# serialized json_data now looks like:
# {
# "president": {
# "name": "Zaphod Beeblebrox",
# "species": "Betelgeusian",
# "male": true
# }
# }
Источник: realpython.com
Объяснение сериализации и десериализации с использованием Python
В python для сериализации используется модуль pickle . Итак, процесс сериализации в Python называется травлением . Этот модуль доступен в стандартной библиотеке Python .
Сериализация с использованием рассола
import pickle
#the object to serialize
example_dic={1:"6",2:"2",3:"f"}
#where the bytes after serializing end up at, wb stands for write byte
pickle_out=open("dict.pickle","wb")
#Time to dump
pickle.dump(example_dic,pickle_out)
#whatever you open, you must close
pickle_out.close()
Файл PICKLE (может быть открыт текстовым редактором, например блокнотом) содержит это (сериализованные данные):
€} q (KX 6qKX 2qKX fqu.
Десериализация с использованием рассола
import pickle
pickle_in=open("dict.pickle","rb")
get_deserialized_data_back=pickle.load(pickle_in)
print(get_deserialized_data_back)
Вывод:
{1: '6', 2: '2', 3: 'f'}