2016-05-31 2 views
0

Я в настоящее время мой OrderedDict, как показано ниже.несколько OrderedDict для словаря из python

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

Но здесь мне нужно преобразовать это в нормальный формат словаря, как показано ниже.

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

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

Как это сделать из python.

+0

Этот вопрос на самом деле не похоже на дубликат http://stackoverflow.com/questions/20166749/how-to-convert-an-ordereddict-into-a-regular-dict-in-python3, поскольку структура данных в вопросе не является OrderedDict, но список OrderedDicts и желаемый результат также кажутся разными ferent. – fmarc

ответ

0

Вы можете инициализировать новый dict с данными от каждого из ваших OrderedDicts так:

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

В качестве альтернативы, чтобы получить Dict с идентификаторами в качестве ключей и имена как значения:

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

@ LutzHorn: Правильно. Я надеюсь, что обновленный ответ отражает то, что – fmarc

+0

@LutzHorn thank.But все же его отображение в виде списка dict я хочу только dict. – user1335606

+0

@ user1335606: Ах, я понял. Словарь может содержать каждый ключ только один раз. Таким образом, вы не можете иметь ключ «id» несколько раз. Желаемый результат, который вы дали в своем вопросе, также является списком/кортежем dicts. Не могли бы вы обновить свой вопрос, чтобы показать, как должен выглядеть диктофон? – fmarc

Смежные вопросы