В моей программе Python я получаю эту ошибку:
KeyError: 'variablename'
Из этого кода:
path = meta_entry['path'].strip('/'),
Может кто-нибудь объяснить, почему это происходит?
python
dictionary
Дэвид Лиу
источник
источник
Key error
как правило, означает, чтоkey
не существует. Итак, вы уверены, что «путь» существует?meta_entry
и убедитесь, что ключ, который вы хотите, существует.Ответы:
KeyError
Обычно означает , что ключ не существует. Итак, вы уверены, чтоpath
ключ существует?Из официальных документов Python:
исключение KeyError
Например:
Итак, попробуйте распечатать содержимое
meta_entry
и проверить,path
существует или нет.Или вы можете сделать:
источник
path = meta_entry['path'].strip('/'),
является частью вашего кода или движка. Если это часть двигателя, боюсь, ничего не поделаешь.print meta_entry
и проверить, содержит ли онpath
или нет.Я полностью согласен с ключевыми ошибками комментариев. Вы также можете использовать метод словаря get (), чтобы избежать исключений. Это также может быть использовано для указания пути по умолчанию, а не
None
как показано ниже.источник
Для DICT, просто используйте
if key in dict
и не используйте поиск в списке ключей
if key in dict.keys()
Последнее будет более трудоемким.
источник
Да, это, скорее всего, вызвано несуществующим ключом.
В моей программе я использовал setdefault, чтобы отключить эту ошибку, из соображений эффективности. в зависимости от того, насколько эффективна эта линия
Я новичок в Python тоже. На самом деле я только что узнал это сегодня. Так что прости меня за незнание эффективности.
В Python 3 вы также можете использовать эту функцию,
Говорят, что это никогда не вызовет ключевой ошибки.
источник
Это означает, что в вашем массиве отсутствует ключ, который вы ищете. Я обрабатываю это с помощью функции, которая либо возвращает значение, если оно существует, либо вместо этого возвращает значение по умолчанию.
Вывод:
источник
Я получил эту ошибку, когда я анализировал
dict
с вложеннымfor
:Выслеживать:
Потому что во втором цикле должно быть
cats[cat]
вместо всего лишьcat
(что является просто ключом)Так:
дает
источник
Например, если это число:
Это отлично работает, но если вы используете, например:
это не работает, потому что ваш ввод возвращает строку '1'. Так что вам нужно использовать int ()
источник
Давайте сделаем это проще, если вы используете Python 3
Если вам нужно еще условие
Для значения динамического ключа вы также можете обработать блок try-exception
источник