2012-05-26 2 views
1
File "F:\ake\pa\th\help.py", line 268, in main 
print type(outputs[x]) 
KeyError: '0' 

Мой файл достаточно велик, поэтому эти места outputs видно, в порядке, как они должны быть выполнены:Python KeyError: «0» на печать значение словаря

outputs={} 

#now in another function 
global another_var,outputs 

#if malarkey... 
elif lines[row][col]=="0": 
    outputs["0"]=str(state) #state is either 0 or 1 

#back in original function 
global outputs 

for x in nums: 
    print outputs[x], #line 268 

Я действительно я не уверен, почему я получаю ошибку выше.

+0

ли вы вырезаете '\ n' из строк входных файлов? – Marii

+1

След сообщает, что ошибка возникает в строке 268. Можете ли вы показать эту часть кода? –

+0

Точно. Я согласен с Дэниелом, что есть, до и после строки 268 вашего кода. –

ответ

2

Трудно сказать без минимального кода, чтобы попытаться запустить, но, скорее всего, ваш elif lines[row][col] == "0": не запускается, когда вы ожидаете этого. Распечатайте что-нибудь, когда вы доберетесь туда, чтобы убедиться, что это так.

Также необходимо сделать print outputs непосредственно перед ошибкой (или, поймать ошибку и распечатать ее), чтобы точно увидеть, что - это. Между этими двумя вещами вы должны увидеть нечто иное, чем то, что вы представляете, происходит.

+0

Yup, как и ожидалось. Уровень отступов был неправильным, поэтому он выполнялся до того, как он это сделал. Благодарю. – ACarter

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