Серіалізація об'єктів Python

Серіалізація в програмуванні — це процес перетворення об'єкта або структури даних у формат, який може бути збережений у файлі, переданий мережею або збережений у базі даних. Зворотний процес називається десеріалізацією, коли серіалізовані дані відновлюються до їхньої первісної структури.

Серіалізація об'єктів за допомогою pickle

pickle — це модуль Python, який дозволяє серіалізувати та десеріалізувати об'єкти Python, включаючи складні структури даних, такі як списки, словники та навіть класи.

Основні методи pickle

Приклад використання pickle

import pickle

some_data = {
    (1, 3.5): 'tuple',
    2: [1, 2, 3],
    'a': {'key': 'value'}
}

# Серіалізація в байтовий рядок
byte_string = pickle.dumps(some_data)
unpacked = pickle.loads(byte_string)

print(unpacked == some_data)    # True
print(unpacked is some_data)    # False

# Серіалізація у файл
file_name = 'data.bin'
with open(file_name, "wb") as fh:
    pickle.dump(some_data, fh)

with open(file_name, "rb") as fh:
    unpacked = pickle.load(fh)

print(unpacked == some_data)    # True
print(unpacked is some_data)    # False

Застереження: Об'єкти класів можуть бути серіалізовані лише тоді, коли клас визначений на момент десеріалізації. Тому передача класів між різними машинами або середовищами може бути проблематичною.

Серіалізація за допомогою JSON

JSON (JavaScript Object Notation) — це легкий формат обміну даними, широко використовується для зберігання та передачі даних у веб-застосунках.

Основні методи JSON в Python

Приклад використання JSON