Задать вопрос
@Scorpiored88

Почему ругается Python в цикле?

Всем доброго!
Помогите разобраться...
есть переменная answ которая ровна:
[[u'!re', {u'=invalid': u'false', u'=disabled': u'false', u'=.id': u'*2', u'=interface': u'br12-staff', u'=dynamic': u'false', u'=actual-interface': u'br12-staff', u'=comment': u'in', u'=network': u'10.10.12.0', u'=address': u'10.10.12.217/24'}], [u'!re', {u'=invalid': u'true', u'=disabled': u'true', u'=.id': u'*3', u'=interface': u'ether1-gateway', u'=dynamic': u'false', u'=actual-interface': u'ether1-gateway', u'=comment': u'RouterOS Upgrade', u'=network': u'172.16.0.0', u'=address': u'172.16.0.2/24'}], [u'!done', {}]]

если я вытаскиваю данные с array и словаря вручную, тоесть :
print answ[0][1][u'=address']
то все отлично,но когда я хочу делать это через цикл:
for x in answ:
    print x[1]['=address']

или

for x in answ:
    print x[1][u'=address']


Результат я получаю, но также я получаю и ошибку : print x[1][u'=address'] KeyError: u'=address'
Как мне избавится от этой ошибки ?
  • Вопрос задан
  • 284 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
angru
@angru
https://docs.python.org/3/library/stdtypes.html#di...

у вас в вашем списке списков присутствует [u'!done', {}], второй элемент - пустой словарь, соответственно, в нем нет ключа '=address'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vilgeforce
Раздолбай и программист
Разобраться что же у вас в переменной x на каждой итерации цикла нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы