How do you implement persistent objects in Python?
The pickle library module allows you to convert almost arbitrary Python objects to byte strings, and back again (it supports most data structures, include user-defined classes, though you still can’t store things like open files, sockets or windows). For better performance, you can use the cPickle module.
An alternative is to use pickle’s little sister, marshal. This module provides very fast ways to store noncircular basic Python types to files and strings, and back again. Although marshal does not do fancy things like store instances or handle shared references properly, it does run extremely fast. For example loading a half megabyte of data can take a fraction of a second. This often beats doing something more complex and general such as using gdbm with pickle/shelve.