Mi az a serializálás?
sobes.tech MI
Válasz az MI-től
A sorosítás az adatszerkezet vagy objektum átalakítása olyan formátumba, amely menthető, hálózaton keresztül továbbítható vagy később visszaállítható. A fordított folyamat a deszerializáció.
A sorosítás fő céljai:
- Állapot mentése: Lehetővé teszi egy objektum vagy adatszerkezet állapotának mentését későbbi helyreállítás céljából.
- Adatok átvitele: Egy szabványosított formátumot biztosít az adatok cseréjéhez különböző rendszerek vagy folyamatok között.
- Gyorsítótárazás: A sorosított adatok kényelmesek ideiglenes tárolásra gyorsítótárban.
Pythonban gyakran használt modulok és formátumok a sorosításhoz:
-
pickle: A Python alapértelmezett modulja Python objektumok sorosítására és deszerializálására. Alkalmas adatok mentésére és betöltésére Python alkalmazásokon belül. Nem ajánlott más nyelvű alkalmazásokkal való adatcsere esetén a formátum sajátossága miatt.# Objektum mentése import pickle data = {'a': 1, 'b': [2, 3]} with open('data.pkl', 'wb') as f: pickle.dump(data, f) # Objektum betöltése with open('data.pkl', 'rb') as f: loaded_data = pickle.load(f) -
json: A JSON (JavaScript Object Notation) szabványos modulja. Széles körben használt web-API-k és adatok cseréjéhez különböző rendszerek között. A JSON szöveges és könnyen olvasható formátum. Korlátozott típusokat támogat (karakterláncok, számok, boolean, listák, szótárak, null).# JSON-be sorosítás import json data = {'name': 'Alice', 'age': 30} json_string = json.dumps(data) print(json_string) # JSON-ből deszerializálás loaded_data = json.loads(json_string) print(loaded_data) -
yaml: A YAML (YAML Ain't Markup Language) modul. Kifejezetten olvashatóbb szintaxist kínál, mint a JSON. Gyakran használják konfigurációs fájlokhoz.# YAML-be sorosítás (PyYAML telepítése szükséges) # import yaml # # data = {"list": [1, 2, 3], "dict": {"key": "value"}} # yaml_string = yaml.dump(data) # print(yaml_string) # # # YAML-ből deszerializálás # loaded_data = yaml.load(yaml_string, Loader=yaml.FullLoader) # print(loaded_data) -
protobuf(Protocol Buffers): A Google által fejlesztett sorosítási formátum. Bináris, hatékony és támogatja a sémákat (fájlokkal.proto). Gyakran használják magas teljesítményű rendszerekben és RPC-ben (Távoli eljárás hívás).
A sorosítási formátum kiválasztása a konkrét feladattól, a teljesítményigényektől, az olvashatóságtól és az egyéb nyelvekkel való interoperabilitás szükségességétől függ.