GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • shutil — High-level file operations
  • pickle — Python object serialization
  • Report a bug
  • Improve this page
  • Show source
  • index
  • modules
  • Python
  • 3.15.2 documentation
  • The Python standard library
  • Data Persistence

This view

  • Original page
  • New address

GeezerVison is showing docs.python.org — Data Persistence

Data Persistence¶

The modules described in this chapter support storing Python data in a persistent form on disk. The pickle and marshal modules can turn many Python data types into a stream of bytes and then recreate the objects from the bytes. The various DBM-related modules support a family of hash-based file formats that store a mapping of strings to other strings.

The list of modules described in this chapter is:

  • pickle — Python object serialization
    • Relationship to other Python modules
      • Comparison with marshal
      • Comparison with json
    • Data stream format
    • Module Interface
    • What can be pickled and unpickled?
    • Pickling Class Instances
      • Persistence of External Objects
      • Dispatch Tables
      • Handling Stateful Objects
    • Custom Reduction for Types, Functions, and Other Objects
    • Out-of-band Buffers
      • Provider API
      • Consumer API
      • Example
    • Restricting Globals
    • Performance
    • Examples
    • Command-line interface
  • copyreg — Register pickle support functions
    • Example
  • shelve — Python object persistence
    • Restrictions
    • Example
    • Exceptions
  • marshal — Internal Python object serialization
  • dbm — Interfaces to Unix “databases”
    • Key and value types
    • dbm.sqlite3 — SQLite backend for dbm
    • dbm.gnu — GNU database manager
    • dbm.ndbm — New Database Manager
    • dbm.dumb — Portable DBM implementation
  • sqlite3 — DB-API 2.0 interface for SQLite databases
    • Tutorial
    • Reference
      • Module functions
      • Module constants
      • Connection objects
      • Cursor objects
      • Row objects
      • Blob objects
      • PrepareProtocol objects
      • Exceptions
      • SQLite and Python types
      • Default adapters and converters (deprecated)
      • Command-line interface
    • 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
      • How to handle non-UTF-8 text encodings
    • Explanation
      • Transaction control
        • Transaction control via the autocommit attribute
        • Transaction control via the isolation_level attribute
© Copyright 2001 Python Software Foundation.
This page is licensed under the Python Software Foundation License Version 2.
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
See History and License for more information.

The Python Software Foundation is a non-profit corporation. Please donate.

Last updated on Nov 12, 2026 (08:53 UTC). Found a bug?
Created using Sphinx 9.1.1.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.