python - 如何检查for循环中的特定值然后结束它?

标签 python csv

今天是我第一次学习csv和python。对不起,如果我问的是一个已经回答的问题。我正在使用 csv 字典阅读器。假设我有一个包含这些行的文件:

{'age': '20', 'name': 'Alice'}
{'age': '21', 'name': 'Freddie'}
{'age': '17', 'name': 'Bob'}

我将创建一个程序,允许用户输入他们的名字。如果它与数据匹配,它将输出 true。我尝试在内部使用 for 循环和 if else 语句。

但是,它会循环整个数据而不是我正在查看的特定数据。例如,如果我输入“Bob”,我会得到

Enter Name:Bob
No record found
No record found
true

代替

Enter Name:Bob
true

我相信这是因为我创建了 for 循环,但我仍然不确定如何应对它。

import  csv

name1 = input("Enter Name:")

filePath = "data.csv"
with open(filePath) as  csvfile:
    reader = csv.DictReader(csvfile)    
    for row in reader:
        if name1 == row['name']:
            print("true")       
            break            
        else:                     
            print("No record found")

最佳答案

Bob 在最后一行,所以它必须从头开始遍历所有行,直到找到 Bob 然后它就存在了。

您可能只想在最后打印 No records found,而不是在每次迭代中打印。下面是使用标志来记住是否找到该术语的建议:

import  csv

name1 = input("Enter Name:")
was_found = False

filePath = "data.csv"
with open(filePath) as csvfile:
    reader = csv.DictReader(csvfile)    
    for row in reader:
        if name1 == row['name']:
            print("true")
            was_found = True
            break            

if not was_found:
    # looked at every row and did not find search term
    print("No record found")

关于python - 如何检查for循环中的特定值然后结束它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55517683/

相关文章:

python - 编写包含字典列表的 .csv 文件

python - Google App Engine 模型类是如何存储的?

python - Django - 获取错误 "Reverse for ' 详细信息',没有找到任何参数。尝试了 1 种模式 :"when using {% url "音乐 :fav"%}

python - 如何知道 python 中一行 CSV 文件的字节位置?

sqlite - 如何使用 SQLite CLI 的 "--skip 1"选项?

python - 将字符中的 float 转换为 float (Python)

python - 如何阻止 Pandas 创建新列?

java - 用 Java 解析 CSV 文件

python - 使用python将一个csv文件的内容附加到另一个

PHP - 更改默认 CSV 工作表名称