繁体   English   中英

为什么我的if elif循环无法一致地在数据中找到字符串

[英]why does my if elif loop fail to consistently find string in data

我的代码是从csv文件读取url,对其内容进行GET,解析响应并将输出写入第二个csv。 如果找到关键字,则需要它来输出某些数据; 如果未找到,则应输出该数据的子集。 换句话说,并非在所有情况下都会填充csv文件的所有列。

我的4行测试文件的构建方式是,在第一次迭代中缺少关键字,在第二次迭代中缺少关键字,在第三次迭代中缺少关键字,最后一次出现。下面的代码将找到关键字,并在第一次迭代时正确填充csv,但它在最后一个实例中找不到。 我无法弄清楚if / elif循环出了什么问题:

        counter = 0
        for row in list_reader:

            key_id = row['keyId']
            ex_id = row['key']
            get_response = key.get_item(row['keyId'])
            #get_item is a method from the imported Client
            length = (get_response['length'])
            word = (get_response['transcript']['words'][0]['w'])
            if word != "[keyword1]" and word != "[keyword2]":
                print "other",counter
                results_writer.writerow([key_id,ex_id,length])

            elif word == "[keyword1]":
                print word, counter
                x = (get_response['value1'])
                y = (get_response['value2'])
                counter = counter + 1                
                results_writer.writerow([key_id,ex_id,length,x,y])

这样,终端的输出为:

    other 0
    [PCI] 0
    other 1
    other 1                

如果工作正常,则最后一个“其他”将是另一个“ [PCI]”。 它将第一次相应地填充csv文件,但此后它将填充,就好像该关键字不再出现一样。

如何修复循环,以便在第一次之后成功地迭代查找关键字?

(代表问题作者发布)

我发现了问题。 碰巧[PCI]是第二个实例中的第一个单词。 我的单词变量只会找到第一个单词。 因此,在另一种情况下,由于它不是第一个单词,因此它不会触发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM