Respostas:
JSON é um formato que codifica objetos em uma sequência. Serialização significa converter um objeto nessa cadeia , e desserialização é sua operação inversa (converter cadeia -> objeto) .
Ao transmitir dados ou armazená-los em um arquivo, é necessário que os dados sejam cadeias de bytes, mas objetos complexos raramente estão nesse formato. A serialização pode converter esses objetos complexos em cadeias de bytes para esse uso. Após a transmissão das cadeias de bytes, o receptor precisará recuperar o objeto original da cadeia de bytes. Isso é conhecido como desserialização.
Digamos que você tenha um objeto:
{foo: [1, 4, 7, 10], bar: "baz"}
serializar em JSON irá convertê-lo em uma string:
'{"foo":[1,4,7,10],"bar":"baz"}'
que pode ser armazenado ou enviado através de fio para qualquer lugar. O receptor pode desserializar essa string para recuperar o objeto original. {foo: [1, 4, 7, 10], bar: "baz"}
.
"{foo: [1, 4, 7, 10], bar: "baz"}"
No contexto do armazenamento de dados, serialização (ou serialização) é o processo de converter estruturas de dados ou estado do objeto em um formato que pode ser armazenado (por exemplo, em um arquivo ou buffer de memória) ou transmitido (por exemplo, através de uma conexão de rede link) e reconstruído mais tarde. [...]
A operação oposta, extraindo uma estrutura de dados de uma série de bytes, é desserialização . Da Wikipedia
No Python, "serialização" nada mais faz do que apenas converter a estrutura de dados fornecida (por exemplo, a dict
) em seu pendente JSON válido (objeto).
True
serão convertidos em JSONs true
e o próprio dicionário será encapsulado entre aspas.True
/ False
,true
/false
json
é a maneira padrão de fazer serialização:Exemplo de código:
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
# }
# }
Fonte: realpython.com
Explicação de serializar e desserializar usando Python
No python, o módulo pickle é usado para serialização. Portanto, o processo de serialização é chamado de decapagem no Python. Este módulo está disponível na biblioteca padrão do Python .
Serialização usando pickle
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()
O arquivo PICKLE (pode ser aberto por um editor de texto como o bloco de notas) contém este (dados serializados):
€} q (KX 6qKX 2qKX fq.
Desserialização usando pickle
import pickle
pickle_in=open("dict.pickle","rb")
get_deserialized_data_back=pickle.load(pickle_in)
print(get_deserialized_data_back)
Resultado:
{1: '6', 2: '2', 3: 'f'}