Форматы dbm существовали задолго до того, как появился NoSQL. Они представляют собой хранилища, работающие по принципу «ключ — значение», их часто встраивают в приложения вроде браузеров, чтобы поддерживать различные настройки. База данных dbm очень похожа на обычный словарь.
• Вы присваиваете значение ключу, и оно автоматически сохраняется в базе данных на диске.
• Вы можете получить значение с помощью ключа.
Рассмотрим простой пример. Второй аргумент следующего метода open() может принимать значения 'r' для чтения, 'w' для записи и 'c' для того и другого, создавая файл, если его не существует:
>>>> import dbm
>>>> db = dbm.open('definitions', 'c')
Для того чтобы создать пары «ключ — значение», просто присвойте значение ключу, как если бы вы работали со словарем:
>>>> db['mustard'] = 'yellow'
>>>> db['ketchup'] = 'red'
>>>> db['pesto'] = 'green'
Приостановимся и посмотрим, что мы уже имеем:
>>>> len(db)
>3
>>>> db['pesto']
>b'green'
Теперь закроем файл и откроем его снова, чтобы убедиться, что наши данные действительно были сохранены:
>>>> db.close()
>>>> db = dbm.open('definitions', 'r')
>>>> db['mustard']
>b'yellow'
Ключи и значения сохраняются как байты. Вы не можете итерировать по объектам базы данных db, но можете получить количество ключей с помощью функции len(). Обратите внимание на то, что функции get() и setdefault() работают точно так же, как и для словарей.