Get all usernames stored in TinyDB database
up vote
1
down vote
favorite
I'm new to TinyDB, and new to Python.
I have various usernames stored in a TinyDB database, they also have other information stored (age, email addresses etc), however, I wish to return all the usernames only.
{"_default": {"1": {"Username": "John", "Age": "30"}, "2": {"Username":
"Andrew", "Age":"40", "Email": "example@example.com"}}}
My GUI would have the button "Show all usernames".
I can return information about specific users, and I can get all the information stored in the database (db.all()), however I cannot just seem to get all the usernames from the entire database.
Is there a way to do this?
Or am I looking at this problem the wrong way.
Many thanks!
python tinydb
add a comment |
up vote
1
down vote
favorite
I'm new to TinyDB, and new to Python.
I have various usernames stored in a TinyDB database, they also have other information stored (age, email addresses etc), however, I wish to return all the usernames only.
{"_default": {"1": {"Username": "John", "Age": "30"}, "2": {"Username":
"Andrew", "Age":"40", "Email": "example@example.com"}}}
My GUI would have the button "Show all usernames".
I can return information about specific users, and I can get all the information stored in the database (db.all()), however I cannot just seem to get all the usernames from the entire database.
Is there a way to do this?
Or am I looking at this problem the wrong way.
Many thanks!
python tinydb
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I'm new to TinyDB, and new to Python.
I have various usernames stored in a TinyDB database, they also have other information stored (age, email addresses etc), however, I wish to return all the usernames only.
{"_default": {"1": {"Username": "John", "Age": "30"}, "2": {"Username":
"Andrew", "Age":"40", "Email": "example@example.com"}}}
My GUI would have the button "Show all usernames".
I can return information about specific users, and I can get all the information stored in the database (db.all()), however I cannot just seem to get all the usernames from the entire database.
Is there a way to do this?
Or am I looking at this problem the wrong way.
Many thanks!
python tinydb
I'm new to TinyDB, and new to Python.
I have various usernames stored in a TinyDB database, they also have other information stored (age, email addresses etc), however, I wish to return all the usernames only.
{"_default": {"1": {"Username": "John", "Age": "30"}, "2": {"Username":
"Andrew", "Age":"40", "Email": "example@example.com"}}}
My GUI would have the button "Show all usernames".
I can return information about specific users, and I can get all the information stored in the database (db.all()), however I cannot just seem to get all the usernames from the entire database.
Is there a way to do this?
Or am I looking at this problem the wrong way.
Many thanks!
python tinydb
python tinydb
edited Nov 11 at 9:34
Alon
47228
47228
asked Nov 11 at 8:52
rlh123
83
83
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
0
down vote
accepted
The database itself is iterable, so perhaps this would be more elegant and would avoid having to open the JSON file directly:
db = TinyDB('database_name.json')
usernames = [r['Username'] for r in db]
Gives:
['John', 'Andrew']
Works perfectly. Thanks very much Will!
– rlh123
Nov 11 at 16:55
add a comment |
up vote
0
down vote
Update: I found a (slightly convoluted) workaround.
It involves reading the file as a JSON file and then looping through the dictionary IDs, stopping the loop upon a key error.
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
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
The database itself is iterable, so perhaps this would be more elegant and would avoid having to open the JSON file directly:
db = TinyDB('database_name.json')
usernames = [r['Username'] for r in db]
Gives:
['John', 'Andrew']
Works perfectly. Thanks very much Will!
– rlh123
Nov 11 at 16:55
add a comment |
up vote
0
down vote
accepted
The database itself is iterable, so perhaps this would be more elegant and would avoid having to open the JSON file directly:
db = TinyDB('database_name.json')
usernames = [r['Username'] for r in db]
Gives:
['John', 'Andrew']
Works perfectly. Thanks very much Will!
– rlh123
Nov 11 at 16:55
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
The database itself is iterable, so perhaps this would be more elegant and would avoid having to open the JSON file directly:
db = TinyDB('database_name.json')
usernames = [r['Username'] for r in db]
Gives:
['John', 'Andrew']
The database itself is iterable, so perhaps this would be more elegant and would avoid having to open the JSON file directly:
db = TinyDB('database_name.json')
usernames = [r['Username'] for r in db]
Gives:
['John', 'Andrew']
answered Nov 11 at 10:12
Will Keeling
10.1k22329
10.1k22329
Works perfectly. Thanks very much Will!
– rlh123
Nov 11 at 16:55
add a comment |
Works perfectly. Thanks very much Will!
– rlh123
Nov 11 at 16:55
Works perfectly. Thanks very much Will!
– rlh123
Nov 11 at 16:55
Works perfectly. Thanks very much Will!
– rlh123
Nov 11 at 16:55
add a comment |
up vote
0
down vote
Update: I found a (slightly convoluted) workaround.
It involves reading the file as a JSON file and then looping through the dictionary IDs, stopping the loop upon a key error.
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
add a comment |
up vote
0
down vote
Update: I found a (slightly convoluted) workaround.
It involves reading the file as a JSON file and then looping through the dictionary IDs, stopping the loop upon a key error.
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
add a comment |
up vote
0
down vote
up vote
0
down vote
Update: I found a (slightly convoluted) workaround.
It involves reading the file as a JSON file and then looping through the dictionary IDs, stopping the loop upon a key error.
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
Update: I found a (slightly convoluted) workaround.
It involves reading the file as a JSON file and then looping through the dictionary IDs, stopping the loop upon a key error.
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
answered Nov 11 at 9:44
rlh123
83
83
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53247168%2fget-all-usernames-stored-in-tinydb-database%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown