# Persistencia de datos

Los módulos descritos en este capítulo soportan el almacenamiento de datos de Python de forma persistente en el disco. Los módulos `pickle` y `marshal` pueden convertir muchos tipos de datos de Python en un flujo de bytes y luego recrear los objetos a partir de los bytes. Los diversos módulos relacionados con DBM admiten una familia de formatos de archivo basados en hash que almacenan un mapeo de cadenas a otras cadenas.

La lista de módulos descritos en este capítulo es:

- `pickle` — Serialización de objetos Python
  - Relación con otros módulos de Python
    - Comparación con `marshal`
    - Comparación con `json`
  - Formato de flujo de datos
  - Interfaz del módulo
  - ¿Qué se puede serializar (pickled) y deserializar (unpickled) con pickle?
  - Pickling de Instancias de clases
    - Persistencia de objetos externos
    - Tablas de despacho
    - Manejo de objetos con estado
  - Reducción personalizada para tipos, funciones y otros objetos
  - Búferes fuera de banda
    - API de proveedor
    - API de consumidor
    - Ejemplo
  - Restricción de Globals
  - Performance
  - Ejemplos
- `copyreg` — Registrar funciones de soporte de `pickle`
  - Ejemplo
- `shelve` — Persistencia de objetos de Python
  - Restricciones
  - Ejemplo
- `marshal` — Serialización interna de objetos Python
- `dbm` — Interfaces para «bases de datos» de Unix
  - `dbm.gnu` — La reinterpretación de GNU de dbm
  - `dbm.ndbm` — Interfaz basada en ndbm
  - `dbm.dumb` — Implementación de DBM portátil
- `sqlite3` — DB-API 2.0 interfaz para bases de datos SQLite
  - Introducción
  - Tutorial
  - Reference
    - Funciones y constantes del módulo
    - Connection objects
    - Cursor objects
    - Row objects
    - PrepareProtocol objects
    - Excepciones
    - SQLite y tipos de Python
  - How-to guides
    - Using adapters to store custom Python types in SQLite databases
      - Permitiéndole al objeto auto adaptarse
      - Registrando un adaptador invocable
    - Convertir valores SQLite a tipos de Python personalizados
    - Adaptadores y convertidores por defecto
    - Adapter and converter recipes
    - Using connection shortcut methods
    - Accediendo a las columnas por el nombre en lugar del índice
    - Usando la conexión como un administrador de contexto
    - Working with SQLite URIs
  - Explanation
    - Transaction control