Advertisements
In a flask project, I am looping through two lists to execute queries. Items from each list are variables in the SQL statements. I want the results of each query assigned to a key in the results dict:
dict1 = {}
dict2 = {}
list1 = [0,1]
list2 = ['criteria1', 'criteria2', 'criteria3']
for item in list1:
cur.execute(query_one(item))
foo = cur.fetchall()
dict1[item] = foo
for criterion in list2:
cur.execute(query_two(item, criterion)):
bar = cur.fetchall()
dict2[item][criterion] = bar
dict1 looks good, but the above gives me KeyError: 0 on dict2.
If I change the last bit to dict2[criterion] = bar
Then dict2
only contains results from the query from list1[1]
– like so:
{[result3], [result4]}
I want dict2
to look something like:
{0: [results1], [results2], 1: [results3], [results4]}
Appreciate any help.
>Solution :
You have to create an empty dictionary in dict2[item]
so you can assign to its keys.
dict1 = {}
dict2 = {}
list1 = [0,1]
list2 = ['criteria1', 'criteria2', 'criteria3']
for item in list1:
cur.execute(query_one(item))
foo = cur.fetchall()
dict1[item] = foo
dict2[item] = {}
for criterion in list2:
cur.execute(query_two(item, criterion)):
bar = cur.fetchall()
dict2[item][criterion] = bar