Python:在csv中查找正确的值

标签 python csv

我是一个相对较新的程序员,对 .csv 文件没有太多经验。 我的文件如下所示:

hugþekkur;181038;lo;alm;hugþekkur;FSB-KK-NFET
hugþekkur;181038;lo;alm;hugþekks;FSB-KK-EFET
hugþekkur;181038;lo;alm;hugþekkir;FSB-KK-NFFT
hugþekkur;181038;lo;alm;hugþekkra;FSB-KK-EFFT

我想根据我已有的搜索条件来搜索正确的行。 我的代码如下所示:

import csv  
reader = csv.reader(database, delimiter=';')
for split in reader:
    if (error_word == split[4]) and (wrong_mark in split[5]) and (number_mark in split[5]) and (infl_mark in split[5]) and (pos_mark == split[2]):
        idnumber = split[1]
    if (idnumber == split[1]) and (gender_mark in split[5]) and 
   (number_mark in split[5]) and (infl_mark in split[5]):
        return split[4]

出于某种原因,当我这样搜索时,它不会返回我所期望的结果。例如,

如果 idnumber = 181038、gender_mark = "KK"、number_mark = "NFET"且 infl_mark = "FSB",

它应该在此处返回第一行。事实并非如此。另外,当我跳过一个搜索条件时,我会得到结果,但缺少一些行,包括我想要的行。我到底在寻找什么似乎并不重要,我找不到它。 这些对你来说有意义吗?任何帮助将不胜感激。

最佳答案

最大的问题可能是 idnumber 匹配。如果你的变量 idnumber 是一个 int (就像我从字面上读你的“For example”行一样),那么这将与字符串不匹配: 181038 == '181038' 计算结果为 错误。你可以在 Perl 中做这样的事情,但不能在 Python 中做。在 Python 中,int(idnumber)==int(split[1]) 会更可靠。

关于Python:在csv中查找正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20255786/

相关文章:

PHP 类将数据导出为 QuickBooks 导入格式?

java - 内存不足错误,同时在 java 中读取大型 CSV 文件(数百万行)

python - 使用 Python 仅向 CSV 文件添加一次 header - 正在创建实时数据

python - 如何打印等间距的数据?

python - 无法使用 jinja2 加载模板

c# - 正则表达式用于删除逗号周围的空格(引用时除外)

javascript - 将 json 扁平化为 csv 格式

python - Scrapy Mysql管道如果表没有AUTO_INCRMENT并且没有UNIQUE - 如何分配category_id?

python - 使用 Django 模型继承时如何避免这种冗余?

python - 如何在 django 中正确地从一个应用程序重定向到另一个应用程序