python - 将字典存储在数据库中

标签 python berkeley-db bsddb

我创建了一个 Berkeley 数据库,并使用 bsddb 模块对其进行操作。我需要以某种样式存储信息,如下所示:

username = '....'
notes = {'name_of_note1':{
                          'password':'...',
                          'comments':'...',
                          'title':'...'
                         }
         'name_of_note2':{
                           #keys same as previous, but another values
                         }
        }

这就是我打开数据库的方式

db = bsddb.btopen['data.db','c']

我该怎么做?

最佳答案

所以,首先,我想你应该使用括号打开数据库:

db = bsddb.btopen('data.db','c')

请记住,伯克利的模式是键 -> 值,其中键和值都是字符串对象(不是 unicode)。根据您的情况,最好的方法是使用:

db[str(username)] = json.dumps(notes)

因为您的笔记与 json 语法兼容。

但是,如果您只想查询用户名的评论,这不是一个很好的选择。您应该使用关系数据库,例如 sqlite,它也是 Python 内置的。

关于python - 将字典存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21934806/

相关文章:

python - 检查一个字典的值是否是另一个字典的键

python - 计算用户输入的偶数 PYTHON 3

java - Berkeley DB JE - 打开游标计数

python - bsddb3-6.0.1 Windows7 构建错误 : _bsddb. obj:错误 LNK2019:函数 newDBObject 中引用的未解析外部符号 db_create

python - 如何将微秒时间戳转换为日期时间?

python - Django 并发 get_or_create

python - 使用 Berkeley DB(bsddb 模块)、Python

python - BDB Python接口(interface)读取BDB时出错

python - 在哪里可以找到使用 bsddb 的示例?

python - 在 python 中表达 berkeley db 中的多个列?