persistence.md
1> **Источник:** https://python-all.ru/3.5/library/persistence.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 12. Персистентность данных89Модули, описанные в этой главе, поддерживают сохранение данных Python на диск в персистентной форме. Модули [`pickle`](https://python-all.ru/3.5/library/pickle.html#module-pickle) и [`marshal`](https://python-all.ru/3.5/library/marshal.html#module-marshal) могут преобразовывать многие типы данных Python в поток байтов, а затем восстанавливать объекты из байтов. Различные модули, связанные с DBM, поддерживают семейство хеш-форматов файлов, которые хранят отображение строк на другие строки.1011Список модулей, описанных в этой главе:1213- [12.1. `pickle` – Сериализация объектов Python](https://python-all.ru/3.5/library/pickle.html)1415 - [12.1.1. Взаимосвязь с другими модулями Python](https://python-all.ru/3.5/library/pickle.html#relationship-to-other-python-modules)1617 - [12.1.1.1. Сравнение с `marshal`](https://python-all.ru/3.5/library/pickle.html#comparison-with-marshal)18 - [12.1.1.2. Сравнение с `json`](https://python-all.ru/3.5/library/pickle.html#comparison-with-json)19 - [12.1.2. Формат потока данных](https://python-all.ru/3.5/library/pickle.html#data-stream-format)20 - [12.1.3. Интерфейс модуля](https://python-all.ru/3.5/library/pickle.html#module-interface)21 - [12.1.4. Что можно сериализовать и десериализовать?](https://python-all.ru/3.5/library/pickle.html#what-can-be-pickled-and-unpickled)22 - [12.1.5. Сериализация экземпляров классов](https://python-all.ru/3.5/library/pickle.html#pickling-class-instances)2324 - [12.1.5.1. Сохранение внешних объектов](https://python-all.ru/3.5/library/pickle.html#persistence-of-external-objects)25 - [12.1.5.2. Диспетчерские таблицы](https://python-all.ru/3.5/library/pickle.html#dispatch-tables)26 - [12.1.5.3. Работа с объектами с состоянием](https://python-all.ru/3.5/library/pickle.html#handling-stateful-objects)27 - [12.1.6. Ограничение глобальных объектов](https://python-all.ru/3.5/library/pickle.html#restricting-globals)28 - [12.1.7. Производительность](https://python-all.ru/3.5/library/pickle.html#performance)29 - [12.1.8. Примеры](https://python-all.ru/3.5/library/pickle.html#examples)30- [12.2. `copyreg` – Функции поддержки регистрации `pickle`](https://python-all.ru/3.5/library/copyreg.html)3132 - [12.2.1. Пример](https://python-all.ru/3.5/library/copyreg.html#example)33- [12.3. `shelve` – Сохранение объектов Python](https://python-all.ru/3.5/library/shelve.html)3435 - [12.3.1. Ограничения](https://python-all.ru/3.5/library/shelve.html#restrictions)36 - [12.3.2. Пример](https://python-all.ru/3.5/library/shelve.html#example)37- [12.4. `marshal` – Внутренняя сериализация объектов Python](https://python-all.ru/3.5/library/marshal.html)38- [12.5. `dbm` – Интерфейсы к базам данных Unix](https://python-all.ru/3.5/library/dbm.html)3940 - [12.5.1. `dbm.gnu` – Переосмысление dbm от GNU](https://python-all.ru/3.5/library/dbm.html#module-dbm.gnu)41 - [12.5.2. `dbm.ndbm` – Интерфейс на основе ndbm](https://python-all.ru/3.5/library/dbm.html#module-dbm.ndbm)42 - [12.5.3. `dbm.dumb` – Переносимая реализация DBM](https://python-all.ru/3.5/library/dbm.html#module-dbm.dumb)43- [12.6. `sqlite3` – Интерфейс DB-API 2.0 для баз данных SQLite](https://python-all.ru/3.5/library/sqlite3.html)4445 - [12.6.1. Функции и константы модуля](https://python-all.ru/3.5/library/sqlite3.html#module-functions-and-constants)46 - [12.6.2. Объекты соединения](https://python-all.ru/3.5/library/sqlite3.html#connection-objects)47 - [12.6.3. Объекты курсора](https://python-all.ru/3.5/library/sqlite3.html#cursor-objects)48 - [12.6.4. Объекты строки](https://python-all.ru/3.5/library/sqlite3.html#row-objects)49 - [12.6.5. Исключения](https://python-all.ru/3.5/library/sqlite3.html#exceptions)50 - [12.6.6. Типы SQLite и Python](https://python-all.ru/3.5/library/sqlite3.html#sqlite-and-python-types)5152 - [12.6.6.1. Введение](https://python-all.ru/3.5/library/sqlite3.html#introduction)53 - [12.6.6.2. Использование адаптеров для хранения дополнительных типов Python в базах SQLite](https://python-all.ru/3.5/library/sqlite3.html#using-adapters-to-store-additional-python-types-in-sqlite-databases)5455 - [12.6.6.2.1. Адаптация объекта самостоятельно](https://python-all.ru/3.5/library/sqlite3.html#letting-your-object-adapt-itself)56 - [12.6.6.2.2. Регистрация вызываемого адаптера](https://python-all.ru/3.5/library/sqlite3.html#registering-an-adapter-callable)57 - [12.6.6.3. Преобразование значений SQLite в пользовательские типы Python](https://python-all.ru/3.5/library/sqlite3.html#converting-sqlite-values-to-custom-python-types)58 - [12.6.6.4. Адаптеры и конвертеры по умолчанию](https://python-all.ru/3.5/library/sqlite3.html#default-adapters-and-converters)59 - [12.6.7. Управление транзакциями](https://python-all.ru/3.5/library/sqlite3.html#controlling-transactions)60 - [12.6.8. Эффективное использование `sqlite3`](https://python-all.ru/3.5/library/sqlite3.html#using-sqlite3-efficiently)6162 - [12.6.8.1. Использование быстрых методов](https://python-all.ru/3.5/library/sqlite3.html#using-shortcut-methods)63 - [12.6.8.2. Доступ к столбцам по имени, а не по индексу](https://python-all.ru/3.5/library/sqlite3.html#accessing-columns-by-name-instead-of-by-index)64 - [12.6.8.3. Использование соединения как менеджера контекста](https://python-all.ru/3.5/library/sqlite3.html#using-the-connection-as-a-context-manager)65 - [12.6.9. Часто встречающиеся проблемы](https://python-all.ru/3.5/library/sqlite3.html#common-issues)6667 - [12.6.9.1. Многопоточность](https://python-all.ru/3.5/library/sqlite3.html#multithreading)68