Python CSV-查找并输出特定行
我目前正在尝试编写一个简单的代码来执行以下操作:请求用户提供客户端的电子邮件地址。然后,代码将检查该客户端是否已注册,其数据(包括电子邮件)是否可以在整个客户端csv中找到,并将此特定raw中的数据提交给用户,以便不必再次键入数据 我已经尝试了下面的代码,但它所做的只是在我的csv中的所有raw上使用它,因为我使用了“print”命令来检查在raw中没有找到邮件的情况下,我可以看到,程序在包含邮件的行上迭代,但将该行视为邮件不在其中 是否有更优雅的方法来检查邮件是否处于原始状态,因为代码中的原始输出似乎提供了一个字典,但是当我尝试将输入邮件与例如(data[“mail”])进行比较时,我得到了一个关键错误 这是代码,我真的很期待答案,因为我无法找出错误可能在哪里Python CSV-查找并输出特定行,python,csv,Python,Csv,我目前正在尝试编写一个简单的代码来执行以下操作:请求用户提供客户端的电子邮件地址。然后,代码将检查该客户端是否已注册,其数据(包括电子邮件)是否可以在整个客户端csv中找到,并将此特定raw中的数据提交给用户,以便不必再次键入数据 我已经尝试了下面的代码,但它所做的只是在我的csv中的所有raw上使用它,因为我使用了“print”命令来检查在raw中没有找到邮件的情况下,我可以看到,程序在包含邮件的行上迭代,但将该行视为邮件不在其中 是否有更优雅的方法来检查邮件是否处于原始状态,因为代码中的原始
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)