Python CSV-查找并输出特定行

Python CSV-查找并输出特定行,python,csv,Python,Csv,我目前正在尝试编写一个简单的代码来执行以下操作:请求用户提供客户端的电子邮件地址。然后,代码将检查该客户端是否已注册,其数据(包括电子邮件)是否可以在整个客户端csv中找到,并将此特定raw中的数据提交给用户,以便不必再次键入数据 我已经尝试了下面的代码,但它所做的只是在我的csv中的所有raw上使用它,因为我使用了“print”命令来检查在raw中没有找到邮件的情况下,我可以看到,程序在包含邮件的行上迭代,但将该行视为邮件不在其中 是否有更优雅的方法来检查邮件是否处于原始状态,因为代码中的原始

我目前正在尝试编写一个简单的代码来执行以下操作:请求用户提供客户端的电子邮件地址。然后,代码将检查该客户端是否已注册,其数据(包括电子邮件)是否可以在整个客户端csv中找到,并将此特定raw中的数据提交给用户,以便不必再次键入数据

我已经尝试了下面的代码,但它所做的只是在我的csv中的所有raw上使用它,因为我使用了“print”命令来检查在raw中没有找到邮件的情况下,我可以看到,程序在包含邮件的行上迭代,但将该行视为邮件不在其中

是否有更优雅的方法来检查邮件是否处于原始状态,因为代码中的原始输出似乎提供了一个字典,但是当我尝试将输入邮件与例如(data[“mail”])进行比较时,我得到了一个关键错误

这是代码,我真的很期待答案,因为我无法找出错误可能在哪里

def check_mail():
    mail=m1.get()
    print ("Mail input: ", mail)
    with open ("daten\daten_diesel_neu.csv", newline="\n") as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            data = row
            print(data)
            if mail in data:
                print ("the mail you entered belongs to the following data: ", row)
                client_data = data
            else:
                print ("mail not in ", row)

如果您的csv文件有一个标题,例如,
名字、姓氏、电子邮件,
那么您的行将类似于:
[('First Name','Frank'),('Email','info@spam.com),(“姓氏”,“油箱”)]
。您要做的是检查
mail
是否在该行中,但该行始终是一个字典,并且通过检查
dict
中是否有内容,您将只遍历键。因此,对于每个键,您还需要遍历每个键的值。此外,我建议在找到搜索时使用
break
命令停止搜索

def check_mail():
    mail=m1.get()
    print ("Mail input: ", mail)
    with open ("daten\daten_diesel_neu.csv", newline="\n") as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            data = row
            print(data)
            for item in data:
                if mail in data[item]:
                    print ("the mail you entered belongs to the following data: ", row)
                    client_data = data
                    break
                else:
                    print ("mail not in ", row)