Вы читаете и пишете это точно как словарь.
>>> import bsddb
>>> db = bsddb.hashopen('mydb.db')
>>> db['FirstName'] = 'Joe'
>>> db['LastName'] = 'Doe'
>>> db['Age'] = '30'
>>> db.close()
>>>
>>> db = bsddb.hashopen('mydb.db')
>>> db['FirstName']
'Joe'
Тем не менее, Berkeley DB хранит только пары строк ключей/значения, так что, возможно, это не то, что вам действительно нужно, если вы хотите сохранить эти значения для нескольких различных записей. Если ни один другой язык не будет использовать этот файл DB, возможно, вы можете использовать модуль Setve для хранения маринованных DICTS. Если вам нужно, чтобы другие были легко использовать, вы можете сериализовать данные своей формы как JSON. Что-то вроде этого:
>>> import json
>>> import bsddb
>>> db = bsddb.hashopen('mydb.db')
>>> form = {'FirstName': 'Joe', 'LastName': 'Doe', 'Age': 30}
>>> db['joedoe'] = json.dumps(form)
>>> db.close()
>>>
>>> db = bsddb.hashopen('mydb.db')
>>> json.loads(db['joedoe'])
{'FirstName': 'Joe', 'LastName': 'Doe', 'Age': 30}
Но, честно говоря, это начинает все больше и больше похоже на анти-паттерн, и если вы не ограничитесь использованием Беркли Д.Б. по какой-то причине, вы не должны делать это таким образом. Вы должны использовать SQLite для этого.