簡體   English   中英

列表索引超出范圍解析CSV文件

[英]List index out of range parsing CSV file

對於我的學校作業,我創建了一個程序,該程序檢查在CSV文件的第0行和第1行中是否找到匹配的EMAIL和PASSWORD,然后從第2-6行中打印有關該用戶的一些信息。 但是,我認為這不一定是造成我問題的任何原因。

問題是else語句。

當用戶正確輸入他們的EMAIL和PASSWORD時,系統將打印其信息。 但是,如果輸入的EMAIl和PASSWORD與CSV文件中的不匹配,我試圖創建一個ELSE語句,該語句將打印“您的電子郵件或密碼不正確”

但是,相反,我會收到此錯誤:

line 12, in <module>
    if email_1 in row[0] and pass_1 in row[1]:
IndexError: list index out of range

由於我是python的新手,所以我不確定為什么會發生這種情況,但是我不認為這與上面的代碼有關,因為正確輸入詳細信息后,程序將打印信息。

我試圖使ELSE語句在不使用將變量分配為TRUE或FALSE的情況下起作用,但是同樣的問題也沒有起作用。 這只是ELSE聲明,似乎並沒有被認可。

碼:

import csv

email_pass = False
email_1 = raw_input('What is your email? :')
pass_1 = raw_input('What is your password? :')
with open('DATAFILE.csv', "rb") as csvfile:
    my_content = csv.reader(csvfile, delimiter=',')
    for row in my_content:
        if email_1 in row[0] and pass_1 in row[1]:
            email_pass = True
            if email_pass == True:
                print row[2:6]
                break
            else:
                print 'Your EMAIL or PASSWORD is incorrect'

您的else語句縮進錯誤。 在哪里放置它,永遠都無法實現,因為if email_1 in row[0] and pass_1 in row[1]:則將其放置在塊if email_1 in row[0] and pass_1 in row[1]:

只需刪除四個空格,它應該可以工作。

email_pass沒有用。 您了解條件結構的工作原理嗎?

代碼中的探針(尚未)與else語句無關。

如您所見,該錯誤在嘗試評估第一個if條件時發生。

這意味着它永遠無法到達其他位置,因為之前還要解決另一個錯誤。

您需要檢查變量的值,以確保您真正想要的是什么。

暫無
暫無

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

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