簡體   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