# 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
  - Tutorial
  - Reference
    - Module functions
    - Module constants
    - Connection objects
    - Cursor objects
    - Row objects
    - PrepareProtocol objects
    - Excepciones
    - SQLite y tipos de Python
    - Adaptadores y convertidores por defecto
  - How-to guides
    - How to use placeholders to bind values in SQL queries
    - How to adapt custom Python types to SQLite values
      - How to write adaptable objects
      - How to register adapter callables
    - How to convert SQLite values to custom Python types
    - Adapter and converter recipes
    - How to use connection shortcut methods
    - How to use the connection context manager
    - How to work with SQLite URIs
    - How to create and use row factories
  - Explanation
    - Transaction control