2016-12-02 4 views
-1

Когда я делаю следующее:Получение AttributeError ошибка: «ул» объект не имеет атрибута «значение»

configKeys = VALIDATION_DEFAULT_CONFIGURATION.keys() 
print(configKeys) 

Но когда я делаю это:

keys = [ x.value for x in configKeys ] 

Я получаю следующее сообщение об ошибке:

keys = [ x.value for x in configKeys ] 
AttributeError: 'str' object has no attribute 'value' 

Почему это так? Как я могу исправить эту ошибку?

+1

Большинство из этих ключей не являются членами вашего перечисления. Они просто регулярные струны. – user2357112

+0

'x' - это строки, а не ключи. – Anonymous

+0

Что такое 'athena.enum.StrEnum'? – user2357112

ответ

2

Итерация по словарю дает свои ключи (которые в вашем случае являются строками (str объектов)). Строки не имеют метода или атрибута value.

Если вы хотите, чтобы значения вашего Словаре, вам нужно перебрать VALIDATION_DEFAULT_CONFIGURATION.values(), или если вы хотите как ключи и значения одновременно, for (k, v) in VALIDATION_DEFAULT_CONFIGURATION.items():

+0

Некоторые из ключей - это перечисляющие элементы, которые имеют атрибут 'value' (делая вероятные, но не определенные предположения о' athena.enum.StrEnum'). – user2357112

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