FelixPhillip
FelixPhillip

Reputation: 5

Python adding a number sequence in a list of dictionaries

There is a list of dictionary.

[{'skillid': 1, 'QueText': u'xxxx, 'Feedback':u'xxxx} , {'skillid': 1, 'QueTextt': u'xxx, 'Feedback': u'xxx}, {'skillid': .....}]

How to insert a new key with the value in sequence? (key value is 'QueNo' and the value is in sequence according to the sequence)

Required output:

[{'skillid':1, 'QueText': u'xxx, 'QueNo': 1, 'Feedback': u'xxx},
{'skillid':1, 'QueText': u'xxx, 'QueNo': 2, 'Feedback': u'xxx},
{ ..............................'QueNo':3,  .................}]

Upvotes: 0

Views: 1087

Answers (2)

shonminh
shonminh

Reputation: 318

I make a test and seems good, codes like this:

seq=[{'skillid': 1, 'QueText': u'quetext', 'Feedback':u'feedback'} , {'skillid': 1, 'QueText': u'quetext', 'Feedback':u'feedback'},{'skillid': 1, 'QueText': u'quetext', 'Feedback': u'feedback'} ]
# print seq
count=1
for subseq in seq:
    subseq.setdefault('QueNo',count)
    count+=1
    print subseq

And dictionary will be ordered print like this:

{'Feedback': u'feedback', 'QueNo': 1, 'QueText': u'quetext', 'skillid': 1}
{'Feedback': u'feedback', 'QueNo': 2, 'QueText': u'quetext', 'skillid': 1}
{'Feedback': u'feedback', 'QueNo': 3, 'QueText': u'quetext', 'skillid': 1}

Upvotes: 1

Frerich Raabe
Frerich Raabe

Reputation: 94419

You can enumerate your list and add the QueNo key:

for i, d in enumerate(l, 1):
  d['QueNo'] = i

Upvotes: 1

Related Questions