2016-05-31 2 views
0

J'ai actuellement mon OrderedDict comme ci-dessous.multiple OrderedDict au dictionnaire de python

d = [OrderedDict([('id', u'570c737e87f8dc15788790b7'), ('name', u'Murgh ')]), OrderedDict([('id', u'570c737e87f8dc15788790b6'), ('name', u'Mushroom')])] 

Mais ici, j'ai besoin de convertir cela en format de dictionnaire normal comme ci-dessous.

{"id": "570c737e87f8dc15788790b7","name": "Murgh" 
    }, 

{ 
"id": "570c737e87f8dc15788790b6","name": "Mushroom" 
    } 

Comment faire cela à partir de python.

+0

Cette question ne semble pas vraiment être un doublon de http://stackoverflow.com/questions/20166749/how-to-convert-an-ordereddict-into-a-regular-dict-in-python3, puisque la structure de données dans la question n'est pas un OrderedDict, mais une liste de OrderedDicts, et la sortie désirée semble également être dif férente. – fmarc

Répondre

0

Vous pouvez initialiser une nouvelle dict avec les données de chacun de vos OrderedDicts comme ceci:

dicts = [dict(_) for _ in d] 

Sinon, pour obtenir un dict avec ids les clés et les noms comme valeurs:

users = { od['id']:od['name'] for od in d } 
+1

@LutzHorn: Correct. J'espère que la réponse mise à jour reflète que – fmarc

+0

@LutzHorn thank.But encore son affichage en tant que liste dict je veux seulement dict. – user1335606

+0

@ user1335606: Ah, je comprends. Un dictionnaire ne peut contenir chaque clé qu'une seule fois. Vous ne pouvez donc pas avoir la clé 'id' plusieurs fois. Le résultat souhaité que vous avez donné dans votre question est également une liste/tuple de dicts. Pourriez-vous mettre à jour votre question pour montrer comment la dict devrait ressembler? – fmarc