簡體   English   中英

讀取csv python時列出索引超出范圍

[英]list index out of range while reading csv python

運行代碼時,我試圖從CSV文件中查找一些項目,有時它可以工作,但有時會產生錯誤列表索引超出范圍

def find_check_in(name,date):
    x = 0
    f = open('employee.csv','r')

    reader = csv.reader(f, delimiter=',')
    for row in reader:
        id = row[0]
        dt = row[1]
        v  = row[2]
        a = datetime.strptime(dt,"%Y-%m-%d")
        if v == "Check-In" and id=="person":
            x = 1

    f.close()            
    return x

追溯(最近一次通話):

文件“”,第51行,在x = find_check_in(name,date)中

文件“”,第21行,位於find_check_in id = row [0]中

IndexError:列表索引超出范圍

您的CSV文件包含空行,導致row變成一個空列表,在這種情況下,沒有索引0,因此會出現錯誤。 確保您輸入的CSV沒有空行,或者添加條件以僅在行不為空的情況下處理該行:

for row in reader:
    if row:
        # the rest of your code

好像讀者正在返回沒有元素的行。 您的數據是否包含任何此類行? 還是您需要對reader使用newline=''參數?

https://docs.python.org/3/library/csv.html#csv.reader

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM