2013-08-03 5 views
0

, 그것은 모든 것을 확실히 인쇄 한 다음 나에게 오류 제공 : KeyError를 : 14425L 코드 : BTW파이썬 - KeyError를 : 나는이 코드를 사용하는 경우 14425L

i = 0 
while (i <= len(data)): 
    print data.ix[i]['Params'] 
    i += 1 

:

data.keys() 
Out[67]: Index([u'Email Address', u'Hashed Email', u'Timestamp', u'Session Index', u'Event', u'Description', u'Version', u'Platform', u'Device', u'Params'], dtype=object) 
+1

명시 적으로 'while'루프를 사용하여 인덱스를 반복 처리하는 이유는 무엇입니까? 대신에 for를 사용하는 것이 가능해야합니다 (이런 종류의 에러를 방지하고 오버 헤드가 적습니다). – Bakuriu

+0

어떤 종류의 객체가'data'입니까? –

+0

인덱스를 반복하면 읽기가 어렵습니다. 느리고 읽기가 어렵고 임의의 반복 가능한 시퀀스가 ​​아닌 시퀀스에서만 작동합니다. –

답변

2

을 마지막 색인을지나 색인에 액세스하고 있습니다. 목록의 최대 색인은 len(data) - 1입니다.

while (i <= len(data)): 

가 있어야한다 그래서 len(data) 인덱스가 유효하지 않습니다

while (i < len(data)):