为了账号安全,请及时绑定邮箱和手机立即绑定

获取存储在 TinyDB 数据库中的所有用户名

获取存储在 TinyDB 数据库中的所有用户名

炎炎设计 2021-08-14 17:44:49
我是 TinyDB 的新手,也是 Python 的新手。我在 TinyDB 数据库中存储了各种用户名,它们还存储了其他信息(年龄、电子邮件地址等),但是,我只想返回所有用户名。{"_default": {"1": {"Username": "John", "Age": "30"}, "2": {"Username": "Andrew", "Age":"40", "Email": "example@example.com"}}}我的 GUI 会有“显示所有用户名”按钮。我可以返回有关特定用户的信息,并且可以获取存储在数据库中的所有信息 (db.all()),但是我似乎无法从整个数据库中获取所有用户名。有没有办法做到这一点?或者我是否以错误的方式看待这个问题。
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

数据库本身是可迭代的,所以也许这会更优雅,并且可以避免直接打开 JSON 文件:


db = TinyDB('database_name.json')


usernames = [r['Username'] for r in db]

给出:


['John', 'Andrew']


查看完整回答
反对 回复 2021-08-14
?
烙印99

TA贡献1829条经验 获得超13个赞

我找到了一个(稍微复杂的)解决方法。


它涉及将文件作为 JSON 文件读取,然后循环遍历字典 ID,在出现键错误时停止循环。


with open("database_name.json", "r") as read_file:

data=json.load(read_file)


try:

    current_number = 1

    while current_number <=100000000000:

        current_number = str(current_number)

        print(data['_default'][current_number]['Username'])

        current_number = int(current_number)

        current_number += 1

except:

    KeyError


查看完整回答
反对 回复 2021-08-14
  • 2 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信