如何检查CSV列中是否包含多个字词?

时间:2016-06-07 14:30:30

标签: python csv

我在网上发现了一些关于如何在CSV文件中的特定列中查找单词的类似问题,但是,我没有找到任何检查多个单词的问题。 这就是问题所在:

words = ‘something’
for row in data:
    if words not in row[‘column header name’]:
        writer.writerow[row]

上面的代码将所有数据打印到csv文件中。它还检查是否有什么东西-...'在['列标题名称']行中,它会跳过该行。 例如,在该列中,每个单元格都包含字符串,例如' something-asdas'或者' something-aaaa'。它检查该字符串的一部分并跳过它。

目标:

words = (‘something’, 'word' , 'dada')
for row in data:
    if words not in row[‘column header name’]:
        writer.writerow[row]

当我尝试这样做时,我得到TypeError:''需要字符串作为左操作数,而不是元组。 关于如何解决这个问题的任何想法?我试图迭代元组,但后来我的csv文件将有重复。

1 个答案:

答案 0 :(得分:1)

如果元组中的任何单词出现在一行中,您需要内置any()检查:

words = ("something", "word" , "dada")
for row in data:
    # skipping rows containing any of the "words"
    if not any(word in row["column header name"] for word in words):
        writer.writerow(row)

当然,这假设row是字典而您已使用DictReader