summaryrefslogtreecommitdiff
path: root/devdocs/python~3.12/library%2Fpersistence.html
blob: 567c4c14e20245a63327ac4b14a273be06865df2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 <span id="persistence"></span><h1>Data Persistence</h1> <p>The modules described in this chapter support storing Python data in a persistent form on disk. The <a class="reference internal" href="pickle#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code>pickle</code></a> and <a class="reference internal" href="marshal#module-marshal" title="marshal: Convert Python objects to streams of bytes and back (with different constraints)."><code>marshal</code></a> 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.</p> <p>The list of modules described in this chapter is:</p>  <ul> <li class="toctree-l1">
<a class="reference internal" href="pickle"><code>pickle</code> — Python object serialization</a><ul> <li class="toctree-l2">
<a class="reference internal" href="pickle#relationship-to-other-python-modules">Relationship to other Python modules</a><ul> <li class="toctree-l3"><a class="reference internal" href="pickle#comparison-with-marshal">Comparison with <code>marshal</code></a></li> <li class="toctree-l3"><a class="reference internal" href="pickle#comparison-with-json">Comparison with <code>json</code></a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="pickle#data-stream-format">Data stream format</a></li> <li class="toctree-l2"><a class="reference internal" href="pickle#module-interface">Module Interface</a></li> <li class="toctree-l2"><a class="reference internal" href="pickle#what-can-be-pickled-and-unpickled">What can be pickled and unpickled?</a></li> <li class="toctree-l2">
<a class="reference internal" href="pickle#pickling-class-instances">Pickling Class Instances</a><ul> <li class="toctree-l3"><a class="reference internal" href="pickle#persistence-of-external-objects">Persistence of External Objects</a></li> <li class="toctree-l3"><a class="reference internal" href="pickle#dispatch-tables">Dispatch Tables</a></li> <li class="toctree-l3"><a class="reference internal" href="pickle#handling-stateful-objects">Handling Stateful Objects</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="pickle#custom-reduction-for-types-functions-and-other-objects">Custom Reduction for Types, Functions, and Other Objects</a></li> <li class="toctree-l2">
<a class="reference internal" href="pickle#out-of-band-buffers">Out-of-band Buffers</a><ul> <li class="toctree-l3"><a class="reference internal" href="pickle#provider-api">Provider API</a></li> <li class="toctree-l3"><a class="reference internal" href="pickle#consumer-api">Consumer API</a></li> <li class="toctree-l3"><a class="reference internal" href="pickle#example">Example</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="pickle#restricting-globals">Restricting Globals</a></li> <li class="toctree-l2"><a class="reference internal" href="pickle#performance">Performance</a></li> <li class="toctree-l2"><a class="reference internal" href="pickle#examples">Examples</a></li> </ul> </li> <li class="toctree-l1">
<a class="reference internal" href="copyreg"><code>copyreg</code> — Register <code>pickle</code> support functions</a><ul> <li class="toctree-l2"><a class="reference internal" href="copyreg#example">Example</a></li> </ul> </li> <li class="toctree-l1">
<a class="reference internal" href="shelve"><code>shelve</code> — Python object persistence</a><ul> <li class="toctree-l2"><a class="reference internal" href="shelve#restrictions">Restrictions</a></li> <li class="toctree-l2"><a class="reference internal" href="shelve#example">Example</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="marshal"><code>marshal</code> — Internal Python object serialization</a></li> <li class="toctree-l1">
<a class="reference internal" href="dbm"><code>dbm</code> — Interfaces to Unix “databases”</a><ul> <li class="toctree-l2"><a class="reference internal" href="dbm#module-dbm.gnu"><code>dbm.gnu</code> — GNU’s reinterpretation of dbm</a></li> <li class="toctree-l2"><a class="reference internal" href="dbm#module-dbm.ndbm"><code>dbm.ndbm</code> — Interface based on ndbm</a></li> <li class="toctree-l2"><a class="reference internal" href="dbm#module-dbm.dumb"><code>dbm.dumb</code> — Portable DBM implementation</a></li> </ul> </li> <li class="toctree-l1">
<a class="reference internal" href="sqlite3"><code>sqlite3</code> — DB-API 2.0 interface for SQLite databases</a><ul> <li class="toctree-l2"><a class="reference internal" href="sqlite3#tutorial">Tutorial</a></li> <li class="toctree-l2">
<a class="reference internal" href="sqlite3#reference">Reference</a><ul> <li class="toctree-l3"><a class="reference internal" href="sqlite3#module-functions">Module functions</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#module-constants">Module constants</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#connection-objects">Connection objects</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#cursor-objects">Cursor objects</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#row-objects">Row objects</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#blob-objects">Blob objects</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#prepareprotocol-objects">PrepareProtocol objects</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#exceptions">Exceptions</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#sqlite-and-python-types">SQLite and Python types</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#default-adapters-and-converters-deprecated">Default adapters and converters (deprecated)</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#command-line-interface">Command-line interface</a></li> </ul> </li> <li class="toctree-l2">
<a class="reference internal" href="sqlite3#how-to-guides">How-to guides</a><ul> <li class="toctree-l3"><a class="reference internal" href="sqlite3#how-to-use-placeholders-to-bind-values-in-sql-queries">How to use placeholders to bind values in SQL queries</a></li> <li class="toctree-l3">
<a class="reference internal" href="sqlite3#how-to-adapt-custom-python-types-to-sqlite-values">How to adapt custom Python types to SQLite values</a><ul> <li class="toctree-l4"><a class="reference internal" href="sqlite3#how-to-write-adaptable-objects">How to write adaptable objects</a></li> <li class="toctree-l4"><a class="reference internal" href="sqlite3#how-to-register-adapter-callables">How to register adapter callables</a></li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#how-to-convert-sqlite-values-to-custom-python-types">How to convert SQLite values to custom Python types</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#adapter-and-converter-recipes">Adapter and converter recipes</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#how-to-use-connection-shortcut-methods">How to use connection shortcut methods</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#how-to-use-the-connection-context-manager">How to use the connection context manager</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#how-to-work-with-sqlite-uris">How to work with SQLite URIs</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#how-to-create-and-use-row-factories">How to create and use row factories</a></li> <li class="toctree-l3"><a class="reference internal" href="sqlite3#how-to-handle-non-utf-8-text-encodings">How to handle non-UTF-8 text encodings</a></li> </ul> </li> <li class="toctree-l2">
<a class="reference internal" href="sqlite3#explanation">Explanation</a><ul> <li class="toctree-l3">
<a class="reference internal" href="sqlite3#transaction-control">Transaction control</a><ul> <li class="toctree-l4"><a class="reference internal" href="sqlite3#transaction-control-via-the-autocommit-attribute">Transaction control via the <code>autocommit</code> attribute</a></li> <li class="toctree-l4"><a class="reference internal" href="sqlite3#transaction-control-via-the-isolation-level-attribute">Transaction control via the <code>isolation_level</code> attribute</a></li> </ul> </li> </ul> </li> </ul> </li> </ul>  <div class="_attribution">
  <p class="_attribution-p">
    &copy; 2001&ndash;2023 Python Software Foundation<br>Licensed under the PSF License.<br>
    <a href="https://docs.python.org/3.12/library/persistence.html" class="_attribution-link">https://docs.python.org/3.12/library/persistence.html</a>
  </p>
</div>