Serializasiya nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Serializasiya — bu məlumatların və ya obyektin saxlanıla bilən, şəbəkə vasitəsilə ötürülə bilən və sonra bərpa oluna bilən formata çevrilməsi prosesidir. Əks proses deserializasiyadır.
Serializasiyanın əsas məqsədləri:
- Vəziyyətin saxlanması: Obyekt və ya məlumat strukturlarının vəziyyətini saxlayaraq sonradan bərpa etməyə imkan verir.
- Məlumatların ötürülməsi: Müxtəlif sistemlər və ya proseslər arasında məlumat mübadiləsi üçün standartlaşdırılmış format təmin edir.
- Keşləmə: Serializə olunmuş məlumatlar müvəqqəti saxlama üçün əlverişlidir.
Python-da serializasiya üçün tez-tez aşağıdakı modullar və formatlar istifadə olunur:
-
pickle: Python-un standart modulu olan bu modul Python obyektlərinin serializasiyası və deserializasiyası üçün istifadə olunur. Python tətbiqləri daxilində məlumatların saxlanması və yüklənməsi üçün uyğundur. Digər dillərdəki tətbiqlərlə məlumat mübadiləsi üçün tövsiyə edilmir, çünki format özünəməxsusdur.# Obyektin saxlanması import pickle data = {'a': 1, 'b': [2, 3]} with open('data.pkl', 'wb') as f: pickle.dump(data, f) # Obyektin yüklənməsi with open('data.pkl', 'rb') as f: loaded_data = pickle.load(f) -
json: JSON (JavaScript Object Notation) ilə işləmək üçün standart modul. Veb-API-lər və müxtəlif sistemlər arasında məlumat mübadiləsi üçün geniş istifadə olunur. JSON mətn formatında və yüngüldür. Məhdud sayda məlumat tiplərini dəstəkləyir (sətirlər, ədədlər, boolean, siyahılar, lüğətlər, null).# JSON-ə serializasiya import json data = {'name': 'Alice', 'age': 30} json_string = json.dumps(data) print(json_string) # JSON-dan deserializasiya loaded_data = json.loads(json_string) print(loaded_data) -
yaml: YAML (YAML Ain't Markup Language) ilə işləmək üçün modul. JSON-ə nisbətən daha oxunaqlı sintaksisi ilə fərqlənir. Konfiqurasiya faylları üçün tez-tez istifadə olunur.# YAML-ə serializasiya (PyYAML quraşdırılması tələb olunur) # import yaml # # data = {"list": [1, 2, 3], "dict": {"key": "value"}} # yaml_string = yaml.dump(data) # print(yaml_string) # # # YAML-dan deserializasiya # loaded_data = yaml.load(yaml_string, Loader=yaml.FullLoader) # print(loaded_data) -
protobuf(Protocol Buffers): Google tərəfindən hazırlanmış serializasiya formatı. İkili, səmərəli və məlumat sxemlərini dəstəkləyir (.protofaylları ilə). Yüksək performanslı sistemlər və RPC (Uzaq Prosedur Çağırışı) üçün geniş istifadə olunur.
Serializasiya formatının seçimi konkret tapşırığa, performans tələblərinə, oxunaqlılığa və digər proqramlaşdırma dilləri ilə qarşılıqlı əlaqəyə ehtiyac olub-olmamasına bağlıdır.