2012-05-26 73 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

是的,就像你期望的那樣。縮進級別是錯誤的,所以它應該在執行之前執行。謝謝。 – ACarter