Python: Как запросить словарь, используя переменную в качестве ключа
У меня есть список из модели Django, который может иметь dict_items с любым ключом из модели. Например, я могу иметь список с атрибутом 'country' или 'name' из той же модели, используя функцию.
x = dict_items([(<country: US>, 1), (<country: UK>, 1), (<country: Australia>, 2), (<country: Canada>, 1)])
x = dict_items([(<name: John>, 10), (<name: Jane>, 15), (<name: Smith>, 20), (<name: Jess>, 1)])
Теперь я пытаюсь построить другую функцию для очистки ключей, в основном от (<country: US>, 1)
до {'key': 'US', 'val': 1}
def pctTop5 (dict, keyy):
pList = []
for (key,value) in dict:
pdict = {}
pdict['key'] = key.keyy
pdict['val'] = value
pList.append(pdict)
df = pandas.DataFrame(pList)
return df
Однако, я получаю следующую ошибку:
'countryModel' object has no attribute 'keyy'
Объект 'countryModel' здесь - это модель Django, которая, очевидно, не имеет атрибута 'keyy'.
Как правильно передать переменную для запроса ключа dict? Мне нужно передать переменную в качестве ключа и повторно использовать функцию в различных представлениях.
Я пытался искать, но большинство ответов касается использования переменной для создания списка dicts, но не смог найти ни одного для запроса одного.
ТИА
Пожалуйста, отредактируйте вопрос и добавьте свой вызов, который генерирует ошибку.
Думаю, проблема в том, как вы вызываете словарь, вместо key.keyy
используйте key[keyy]
Спасибо всем!
Кто-то написал getattr() в течение нескольких минут, а затем удалил его. Я попробовал заменить key.keyy
на getattr(key, keyy)
и это решило проблему.
Спасибо