Yanıtlar:
JSON, bir dizedeki nesneleri kodlayan bir formattır. Serileştirme , bir nesneyi bu dizeye dönüştürmek anlamına gelir ve serileştirme, ters işlemidir (dizeyi dönüştür -> nesneyi) .
Veri iletirken veya bir dosyada depolarken, verilerin bayt dizeleri olması gerekir, ancak karmaşık nesneler nadiren bu formattadır. Serileştirme, bu tür bir kullanım için bu karmaşık nesneleri bayt dizelerine dönüştürebilir. Bayt dizgileri iletildikten sonra, alıcının orijinal nesneyi bayt dizesinden kurtarması gerekecektir. Bu, seriyi kaldırma olarak bilinir.
Diyelim ki bir nesneniz var:
{foo: [1, 4, 7, 10], bar: "baz"}
JSON'a serileştirmek, onu bir dizeye dönüştürecektir:
'{"foo":[1,4,7,10],"bar":"baz"}'
saklanabilir veya herhangi bir yere tel ile gönderilebilir. Alıcı daha sonra orijinal nesneyi geri almak için bu dizeyi seri halinden çıkarabilir. {foo: [1, 4, 7, 10], bar: "baz"}
.
"{foo: [1, 4, 7, 10], bar: "baz"}"
Veri depolama bağlamında, serileştirme (veya serileştirme), veri yapılarını veya nesne durumunu saklanabilen (örneğin, bir dosya veya bellek tamponunda) veya iletilebilen (örneğin, bir ağ bağlantısı üzerinden) bir formata çevirme işlemidir. bağlantı) ve daha sonra yeniden yapılandırıldı. [...]
tersi işlemi, bir dizi bayt bir veri yapısını çıkararak bir seri kaldırma . Wikipedia'dan
Python'da "serileştirme", verilen veri yapısını (örneğin a dict
) geçerli JSON kolye (nesne) haline dönüştürmekten başka bir şey yapmaz .
True
JSONs dönüştürülecek true
ve sözlük kendisi daha sonra tırnak içinde kapsüllü edilecektir.True
/ False
,true
/false
json
, serileştirme yapmanın standart yoludur:Kod örneği:
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
# }
# }
Kaynak: realpython.com
Python Kullanarak Seri Hale Getirme ve Seriyi Kaldırma Açıklaması
Python'da, turşu modülü serileştirme için kullanılmaktadır. Bu yüzden, serileştirme sürecine Python'da asitleme denir . Bu modül Python standart kitaplığında mevcuttur .
Turşu kullanarak serileştirme
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 dosyası (not defteri gibi bir metin düzenleyici tarafından açılabilir) şunları içerir (serileştirilmiş veriler):
€} q (KX 6qKX 2qKX fqu.
Turşu kullanarak seriyi kaldırma
import pickle
pickle_in=open("dict.pickle","rb")
get_deserialized_data_back=pickle.load(pickle_in)
print(get_deserialized_data_back)
Çıktı:
{1: "6", 2: "2", 3: "f"}