convert List of Dicts into a 2 deep Nested Dict - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: convert List of Dicts into a 2 deep Nested Dict (/thread-20649.html) |
convert List of Dicts into a 2 deep Nested Dict - rethink - Aug-23-2019 Hi Ive been banging my head against a wall for some time with this now, so hoping somebody will be able to point me in the right direction I am writing a flask app and my query returns the following list of dictionaries (via cur.fetchall) .. MyListofDicts = [{'gameID': 'game_1', 'prediction': 41, 'bonus': 'no', 'userName': 'Paul'}, {'gameID': 'game_2', 'prediction': 77, 'bonus': 'no', 'userName': 'Paul'}, {'gameID': 'game_1', 'prediction': 62, 'bonus': 'no', 'userName': 'Steve'}, {'gameID': 'game_2', 'prediction': 77, 'bonus': 'yes', 'userName': 'Steve'} ]I need to convert this into a nested dictionary so that i can use it to build an html table with jinja2 templating ...The final HTML table will have 'gameID' as Y axis, 'userName' as X axis, with prediction as the value in the table.. there could be any number of games or users in any particular week Ideally, for me to iterate over it in jinja2, i need to convert the above 'flat' list of dictionaries to a nested dictionary keyed on 'userName' and then 'gameID' ..so that it looks like this MyDict = { 'Paul': { 'game_1': { 'prediction': 'home_win', 'bonus': 'no' }, 'game_2': { 'prediction': 'away_win', 'bonus': 'no' }}, 'Steve': { 'game_1': { 'prediction': 'home_win', 'bonus': 'no' }, 'game_2': { 'prediction': 'away_win', 'bonus': 'yes' } } }This format will enable me to iterate over on a per user /per game basis in Jinja2 and thus enable me to build a table Does anyone have any idea on how i can perform the above conversion ...ive been trying for ages now and really struggling to figure it out :( Any help would be greatly appreciated RE: convert List of Dicts into a 2 deep Nested Dict - ichabod801 - Aug-23-2019 It should be pretty easy. Start with an empty main dictionary. Loop through the list. If the user name is not in the main dictionary, add it as a key with an empty sub-dictionary as the value. Then add the game to the sub-dictionary. Try that. If it doesn't work, show us the code you wrote and what the problem is, and we can help you fix it. |