An alternative is to use ZODB. For example, you could use the BTree class for the outermost layers of the nested dict, and a regular dict for the innermost layer. If broken up properly, you can store apparently unlimited amount of data with reasonable performance.
Just remember not to iterate over the entire collection of objects without aborting the transaction regularly. -- http://mail.python.org/mailman/listinfo/python-list