I want to add new data in the existing dictionary. I tried using update but it is not working for me. What to do?
Code:
comp_data = {} temp = form.competition.data print('nTemp: ', temp) for i in temp: print('i : ', i) comp_data.update(i) print("nnComp Data : ", comp_data)
Output:
Temp: [{'question': 'q1', 'option1': 'q1', 'option2': 'q1', 'option3': 'q1', 'answer': 'q1'}, {'question': 'q2', 'option1': 'q2', 'option2': 'q2', 'option3': 'q2', 'answer': 'q2'}] i : {'question': 'q1', 'option1': 'q1', 'option2': 'q1', 'option3': 'q1', 'answer': 'q1'} i : {'question': 'q2', 'option1': 'q2', 'option2': 'q2', 'option3': 'q2', 'answer': 'q2'} Comp Data : {'question': 'q2', 'option1': 'q2', 'option2': 'q2', 'option3': 'q2', 'answer': 'q2'}
The output i want is like this:
Comp Data : {{'question': 'q1', 'option1': 'q1', 'option2': 'q1', 'option3': 'q1', 'answer': 'q1'}, {'question': 'q2', 'option1': 'q2', 'option2': 'q2', 'option3': 'q2', 'answer': 'q2'}}
Answer
You already have your desired output in temp
Temp: [{'question': 'q1', 'option1': 'q1', 'option2': 'q1', 'option3': 'q1', 'answer': 'q1'}, {'question': 'q2', 'option1': 'q2', 'option2': 'q2', 'option3': 'q2', 'answer': 'q2'}] Comp Data : {'question': 'q1', 'option1': 'q1', 'option2': 'q1', 'option3': 'q1', 'answer': 'q1'}, {'question': 'q2', 'option1': 'q2', 'option2': 'q2', 'option3': 'q2', 'answer': 'q2'}
Dictionary is not a typical container that you can index , it works on the principles of KEY
–> VALUE
pairs and cannot contain duplicate keys
I would suggest you to directly use temp
for your further usage in your code
Based on your edit –
if you still want to create a new dictionary you can do that as follows –
>>> t = [{'question': 'q1', 'option1': 'q1', 'option2': 'q1', 'option3': 'q1', 'answer': 'q1'}, {'question': 'q2', 'option1': 'q2', 'option2': 'q2', 'option3': 'q2', 'answer': 'q2'}] >>> d = {} >>> >>> >>> for i,k in enumerate(t): ... d[i] = k ... >>> from pprint import pprint >>> pprint(d) {0: {'answer': 'q1', 'option1': 'q1', 'option2': 'q1', 'option3': 'q1', 'question': 'q1'}, 1: {'answer': 'q2', 'option1': 'q2', 'option2': 'q2', 'option3': 'q2', 'question': 'q2'}} >>>