> **Источник:** https://python-all.ru/3.2/library/persistence.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 11. Персистентность данных

Модули, описанные в этой главе, позволяют сохранять данные Python на диске в персистентном виде. Модули [`pickle`](https://python-all.ru/3.2/library/pickle.html#module-pickle) и [`marshal`](https://python-all.ru/3.2/library/marshal.html#module-marshal) могут преобразовывать многие типы данных Python в поток байтов, а затем воссоздавать объекты из этих байтов. Различные модули, связанные с DBM, поддерживают семейство файловых форматов на основе хеш-таблиц, которые хранят отображение строк на строки.

Список модулей, описанных в этой главе:

- [11.1. `pickle` – Сериализация объектов Python](https://python-all.ru/3.2/library/pickle.html)

  - [11.1.1. Отношение к другим модулям Python](https://python-all.ru/3.2/library/pickle.html#relationship-to-other-python-modules)
  - [11.1.2. Формат потока данных](https://python-all.ru/3.2/library/pickle.html#data-stream-format)
  - [11.1.3. Интерфейс модуля](https://python-all.ru/3.2/library/pickle.html#module-interface)
  - [11.1.4. Что можно сериализовать и десериализовать?](https://python-all.ru/3.2/library/pickle.html#what-can-be-pickled-and-unpickled)
  - [11.1.5. Сериализация экземпляров классов](https://python-all.ru/3.2/library/pickle.html#pickling-class-instances)

    - [11.1.5.1. Сохранение внешних объектов](https://python-all.ru/3.2/library/pickle.html#persistence-of-external-objects)
    - [11.1.5.2. Обработка объектов с состоянием](https://python-all.ru/3.2/library/pickle.html#handling-stateful-objects)
  - [11.1.6. Ограничение глобальных объектов](https://python-all.ru/3.2/library/pickle.html#restricting-globals)
  - [11.1.7. Примеры](https://python-all.ru/3.2/library/pickle.html#examples)
- [11.2. `copyreg` – Регистрация `pickle` вспомогательных функций](https://python-all.ru/3.2/library/copyreg.html)

  - [11.2.1. Пример](https://python-all.ru/3.2/library/copyreg.html#example)
- [11.3. `shelve` – Сохранение объектов Python](https://python-all.ru/3.2/library/shelve.html)

  - [11.3.1. Ограничения](https://python-all.ru/3.2/library/shelve.html#restrictions)
  - [11.3.2. Пример](https://python-all.ru/3.2/library/shelve.html#example)
- [11.4. `marshal` – Внутренняя сериализация объектов Python](https://python-all.ru/3.2/library/marshal.html)
- [11.5. `dbm` – Интерфейсы к «базам данных» Unix](https://python-all.ru/3.2/library/dbm.html)

  - [11.5.1. `dbm.gnu` – Переосмысление dbm от GNU](https://python-all.ru/3.2/library/dbm.html#module-dbm.gnu)
  - [11.5.2. `dbm.ndbm` – Интерфейс на основе ndbm](https://python-all.ru/3.2/library/dbm.html#module-dbm.ndbm)
  - [11.5.3. `dbm.dumb` – Переносимая реализация DBM](https://python-all.ru/3.2/library/dbm.html#module-dbm.dumb)
- [11.6. `sqlite3` – Интерфейс DB-API 2.0 для баз данных SQLite](https://python-all.ru/3.2/library/sqlite3.html)

  - [11.6.1. Функции и константы модуля](https://python-all.ru/3.2/library/sqlite3.html#module-functions-and-constants)
  - [11.6.2. Объекты соединения](https://python-all.ru/3.2/library/sqlite3.html#connection-objects)
  - [11.6.3. Объекты курсора](https://python-all.ru/3.2/library/sqlite3.html#cursor-objects)
  - [11.6.4. Объекты строки](https://python-all.ru/3.2/library/sqlite3.html#row-objects)
  - [11.6.5. Типы SQLite и Python](https://python-all.ru/3.2/library/sqlite3.html#sqlite-and-python-types)

    - [11.6.5.1. Введение](https://python-all.ru/3.2/library/sqlite3.html#introduction)
    - [11.6.5.2. Использование адаптеров для хранения дополнительных типов Python в базах данных SQLite](https://python-all.ru/3.2/library/sqlite3.html#using-adapters-to-store-additional-python-types-in-sqlite-databases)

      - [11.6.5.2.1. Адаптация объекта самостоятельно](https://python-all.ru/3.2/library/sqlite3.html#letting-your-object-adapt-itself)
      - [11.6.5.2.2. Регистрация вызываемого адаптера](https://python-all.ru/3.2/library/sqlite3.html#registering-an-adapter-callable)
    - [11.6.5.3. Преобразование значений SQLite в пользовательские типы Python](https://python-all.ru/3.2/library/sqlite3.html#converting-sqlite-values-to-custom-python-types)
    - [11.6.5.4. Адаптеры и преобразователи по умолчанию](https://python-all.ru/3.2/library/sqlite3.html#default-adapters-and-converters)
  - [11.6.6. Управление транзакциями](https://python-all.ru/3.2/library/sqlite3.html#controlling-transactions)
  - [11.6.7. Эффективное использование `sqlite3`](https://python-all.ru/3.2/library/sqlite3.html#using-sqlite3-efficiently)

    - [11.6.7.1. Использование сокращённых методов](https://python-all.ru/3.2/library/sqlite3.html#using-shortcut-methods)
    - [11.6.7.2. Доступ к столбцам по имени вместо индекса](https://python-all.ru/3.2/library/sqlite3.html#accessing-columns-by-name-instead-of-by-index)
    - [11.6.7.3. Использование соединения как менеджера контекста](https://python-all.ru/3.2/library/sqlite3.html#using-the-connection-as-a-context-manager)
  - [11.6.8. Частые проблемы](https://python-all.ru/3.2/library/sqlite3.html#common-issues)

    - [11.6.8.1. Многопоточность](https://python-all.ru/3.2/library/sqlite3.html#multithreading)
