[英]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.