Создать словарь из вложенного списка, Python 3.6

1

У меня есть список ниже:

dimensionList = [{'key': 2109290, 'id': 'R', 'name': 'Reporter', 'isGeo': True, 'geoType': 'region'}, 
         {'key': 2109300, 'id': 'C', 'name': 'Commodity', 'isGeo': False, 'geoType': None}, 
         {'key': 2109310, 'id': 'P', 'name': 'Partner', 'isGeo': True, 'geoType': 'region'}, 
         {'key': 2109320, 'id': 'TF', 'name': 'Trade Flow', 'isGeo': False, 'geoType': None}, 
         {'key': 2109330, 'id': 'I', 'name': 'Measure', 'isGeo': False, 'geoType': None}]

Я хочу создать словарь из этого списка

Нужны значения "id" в качестве идентификатора словаря и "имя" в качестве значений словаря

Ожидаемые результаты:-

ResultsDict = {'R':'Reporter', 'C':'Commodity', 'P':'Partner', 'TF':'Trade Flow', 'I':'Measure'}
Теги:
pandas
python-3.x
dictionary

2 ответа

0
Лучший ответ

Вам нужно прокрутить список словарей, вытащить нужные вам биты и добавить их в новый словарь.

ResultsDict = {}

for dict_item in dimensionList:
    id = dict_item ['id']
    name = dict_item ['name']
    ResultsDict[id] = name

print(ResultsDict)
6

Используйте dict comprehension:

d = {x['id']:x['name'] for x in dimensionList}
print (d)
{'R': 'Reporter', 'C': 'Commodity', 'P': 'Partner', 'TF': 'Trade Flow', 'I': 'Measure'}
  • 0
    @SPy - Добро пожаловать! В StackOveflow должен быть принят только один ответ, а не оба. Это тебе решать.
  • 1
    исправлено ... спасибо ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню