索引错误:列表索引超出范围,位于索引0。

3

我正在使用csv模块重新组织一些来自csv文件的数据,但当我调用row[0]时,它会给我这个错误IndexError:list index out of range,尽管我调用的是索引0,但它不应该超出列表范围。

下面是我的数据在csv文件中的示例,它只有一列。

Caucasian
Black or African American
Caucasian
Asian or Pacific Islander
Caucasian,Hispanic or Latino,Native American or American Indian
Caucasian
Caucasian
Caucasian
Middle Eastern,Asian or Pacific Islander
Asian or Pacific Islander

这是我的代码示例:
for row in csvReader:
    if row[0] == "Hispanic,Latino,or Spanish origin":
        print("")
    raceList = row[0].split(",")
    elif (len(raceList) > 1):
        csvWriter.writerow(["Mixed Race"])
    elif (row[0] == "African American"):
        csvWriter.writerow(["Black or African American"])
1个回答

1
看起来有一行是空的。当 csvReader 试图读取它时,这会产生一个空列表,而空列表甚至没有索引0。首先要做的是确认这是否发生了,在您的 for 循环开始处添加一个打印语句:
print(row)

运行后,您应该在获得IndexError之前看到打印出的[]。然而,由于这是一行空白,我们可能不关心跳过它。为了跳过该行,请使用continue语句跳转到下一个for循环的迭代。
if len(row) == 0:  # `if not row:` would also work, but this is somewhat more clear
    continue

或者根据您想要做的事情采取不同的处理方式。

非常感谢。看起来好像可以了。我检查了一下 Excel 中是否有空格,因为我需要查看超过 800 行的数据。 - Jay Ghosh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接