Čo je serializácia?
sobes.tech AI
Odpoveď od AI
Serializácia je proces prevodu dátovej štruktúry alebo objektu do formátu, ktorý je možné uložiť, preniesť cez sieť alebo neskôr obnoviť. Opčný proces sa nazýva deserializácia.
Hlavné ciele serializácie:
- Uloženie stavu: Umožňuje uložiť stav objektu alebo dátovej štruktúry na neskoršie obnovenie.
- Prenos dát: Zabezpečuje štandardizovaný formát na výmenu dát medzi rôznymi systémami alebo procesmi.
- Cacheovanie: Serializované dáta sú vhodné na dočasné uloženie v cache.
V Pythone sa často používajú nasledujúce moduly a formáty na serializáciu:
-
pickle: Štandardný modul na serializáciu a deserializáciu Python objektov. Vhodný na uloženie a načítanie dát v rámci Python aplikácií. Neodporúča sa na výmenu dát s aplikáciami v iných jazykoch kvôli špecifikám formátu.# Uloženie objektu import pickle data = {'a': 1, 'b': [2, 3]} with open('data.pkl', 'wb') as f: pickle.dump(data, f) # Načítanie objektu with open('data.pkl', 'rb') as f: loaded_data = pickle.load(f) -
json: Štandardný modul na prácu s JSON (JavaScript Object Notation). Široko používaný na webové API a výmenu dát medzi rôznymi systémami. JSON je textový a ľahko čitateľný formát. Podporuje obmedzený počet typov dát (reťazce, čísla, boolean, zoznamy, slovníky, null).# Serializácia do JSON import json data = {'name': 'Alice', 'age': 30} json_string = json.dumps(data) print(json_string) # Deserializácia z JSON loaded_data = json.loads(json_string) print(loaded_data) -
yaml: Modul na prácu s YAML (Yet Another Markup Language). Vyššia čitateľnosť v porovnaní s JSON. Často sa používa na konfiguračné súbory.# Serializácia do YAML (vyžaduje inštaláciu PyYAML) # import yaml # # data = {"list": [1, 2, 3], "dict": {"key": "value"}} # yaml_string = yaml.dump(data) # print(yaml_string) # # # Deserializácia z YAML # loaded_data = yaml.load(yaml_string, Loader=yaml.FullLoader) # print(loaded_data) -
protobuf(Protocol Buffers): Formát na serializáciu vyvinutý spoločnosťou Google. Binárny, efektívny a podporuje schémy dát (pomocou súborov .proto). Často sa používa v systémoch s vysokým výkonom a RPC (Remote Procedure Call).
Výber formátu závisí od konkrétnej úlohy, požiadaviek na výkon, čitateľnosti a potreby spolupráce s inými programovacími jazykmi.