Python для начинающих
1.08K subscribers
304 photos
3 videos
232 files
62 links
Python для начинающих
Download Telegram
Привет! Я Иван, и сегодня мы окунемся в мир сериализации данных в Python с помощью двух мощных модулей: json и pickle. Если вы когда-нибудь задумывались, как сохранить сложные структуры данных в файл, а позже быстро их восстановить — этот пост для вас.

### Сериализация: зачем это нужно?

Сериализация — это процесс преобразования объектов в поток байтов или строк, чтобы их можно было хранить или передавать. А потом — обратно в объекты с помощью десериализации. В Python из коробки есть два популярных инструмента для этих задач: json и pickle.

---

## Модуль json: стандарт для обмена

json переводит объекты Python в строку в формате JSON и обратно. Это удобно, если ваши данные нужно читать или писать из других языков программирования.

### Пример: сериализация и десериализация словаря

import json

data = {"name": "Alice", "age": 30, "is_active": True, "hobbies": ["music", "python"]}
# Сериализация: запись в строку
json_str = json.dumps(data)
print(json_str)

# Десериализация: из строки обратно в Python-объект
new_data = json.loads(json_str)
print(new_data)


Кроме строк, можно сразу работать с файлами:

with open("data.json", "w") as f:
json.dump(data, f)


И обратно:

with open("data.json") as f:
data_from_file = json.load(f)


---

## Модуль pickle: для хранения любых объектов

pickle — это уже магия посерьезней. Он умеет сериализовать почти любые объекты Python (и даже функции), но полученные данные будут не человекочитаемыми и небезопасны для загрузки из неизвестных источников.

### Пример: сериализация класса

import pickle

class User:
def __init__(self, username):
self.username = username

user = User('Bob')

# Сохраняем объект в файл
with open("user.pkl", "wb") as f:
pickle.dump(user, f)

# Загружаем объект обратно
with open("user.pkl", "rb") as f:
loaded_user = pickle.load(f)
print(loaded_user.username)


---

## json или pickle: что выбрать?

- json: для обмена между разными языками и системами, когда важна читаемость.
- pickle: для хранения сложных структур Python, когда безопасность не критична.

Используйте правильный инструмент — и ваши данные всегда будут под рукой!

До встречи в следующих постах!
— Иван