Search code examples
pythontinydb

Get all usernames stored in TinyDB database


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": "[email protected]"}}}

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!


Solution

  • 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']