2014-04-10 5 views
0

내 코드에 오류가 - IndexError: list index out of range, at rates[row[0]] = row[1] :IndexError : 범위를 벗어난리스트 인덱스 - CSV 파일

def change(): 
    # read file into dictionary 
    with open('exchangeRate.csv', 'r') as in_file: 
     echRdr = csv.reader(in_file) 
     for row in echRdr: 
      rates[row[0]] = row[1] 

그것 때문에 편집이 문제를 해결하는 가장 쉬운 방법에 내 파일에 빈 줄이 있기 때문입니다 이 줄을 건너 뛰는 것입니다. 어떻게 그럴 수 있습니까?

+1

'행'인쇄를 시도 했습니까? 그것은 약간의 통찰력을 제공 할 수있는 것 같습니다. –

+0

위의 설명과 비슷합니다. 행 중 하나에 2 개 미만의 항목이 있습니다. 'len (row)> 1 :'으로 그 행을 건너 뛸 수 있지만 먼저 실패 사례를 이해하는 것이 가장 좋다. – ejrb

+0

파이썬 3을 사용한다면'r ', newline =' ')' ([docs] (https://docs.python.org/3/library/csv.html#csv.reader)에 설명 된대로) 'r'이 아닙니다. – DSM

답변

1

for 루프의 간단한 조건으로 문제가 해결 될 수 있습니다.

def change(): 
    # read file into dictionary 
    with open('exchangeRate.csv', 'r') as in_file: 
    echRdr = csv.reader(in_file) 
    for row in echRdr: 
     if len(row) <= 1: 
      pass 
     else: 
      rates[row[0]] = row[1] 
관련 문제