获取存储在 TinyDB 数据库中的所有用户名
Get all usernames stored in TinyDB database
我是 TinyDB 的新手,也是 Python 的新手。
我在 TinyDB 数据库中存储了各种用户名,它们还存储了其他信息(年龄、电子邮件地址等),但是,我希望只 return 所有用户名。
{"_default": {"1": {"Username": "John", "Age": "30"}, "2": {"Username":
"Andrew", "Age":"40", "Email": "example@example.com"}}}
我的 GUI 会有按钮 "Show all usernames"。
我可以 return 关于 特定 用户的信息,我可以得到 所有 存储在数据库中的信息 (db.all()), 但是我似乎不能从整个数据库中获取所有用户名。
有办法吗?
还是我看错了这个问题。
非常感谢!
更新:我找到了一个(稍微复杂的)解决方法。
它涉及将文件作为 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
数据库本身是可迭代的,所以也许这会更优雅并且避免必须直接打开 JSON 文件:
db = TinyDB('database_name.json')
usernames = [r['Username'] for r in db]
给出:
['John', 'Andrew']
我是 TinyDB 的新手,也是 Python 的新手。
我在 TinyDB 数据库中存储了各种用户名,它们还存储了其他信息(年龄、电子邮件地址等),但是,我希望只 return 所有用户名。
{"_default": {"1": {"Username": "John", "Age": "30"}, "2": {"Username":
"Andrew", "Age":"40", "Email": "example@example.com"}}}
我的 GUI 会有按钮 "Show all usernames"。
我可以 return 关于 特定 用户的信息,我可以得到 所有 存储在数据库中的信息 (db.all()), 但是我似乎不能从整个数据库中获取所有用户名。
有办法吗?
还是我看错了这个问题。
非常感谢!
更新:我找到了一个(稍微复杂的)解决方法。
它涉及将文件作为 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
数据库本身是可迭代的,所以也许这会更优雅并且避免必须直接打开 JSON 文件:
db = TinyDB('database_name.json')
usernames = [r['Username'] for r in db]
给出:
['John', 'Andrew']