python dictionary error AttributeError: ‘list’ object has no attribute ‘keys’

Perhaps you are looking to do something along these lines:

users = [{'id':1010,'name':"Administrator",'type':1},{'id':1011,'name':"Administrator2",'type':1}]

new_dict={}

for di in users:
    new_dict[di['id']]={}
    for k in di.keys():
        if k =='id': continue
        new_dict[di['id']][k]=di[k]

print new_dict     
# {1010: {'type': 1, 'name': 'Administrator'}, 1011: {'type': 1, 'name': 'Administrator2'}} 

Then you can do:

>>> new_dict[1010] 
{'type': 1, 'name': 'Administrator'}

Essentially, this is turning a list of anonymous dicts into a dict of dicts that are keys from the key 'id'

Leave a Comment