2013-09-29 81 views
0

我剛開始使用Python進行數據操作,並且遇到一對不迭代的嵌套for循環。目標是將csv數據文件中的行與列表中的項目進行匹配,但是在對列表中的第一個項目執行數據行操作後,它會停止。for循環的嵌套對返回None並且不會迭代

問題的一個例子是:

with open(infiles[3], 'rU') as inf3: 
    firmyeardata3=csv.reader(inf3, dialect='excel') 
    for i in firmyearlist: 
     firm=firmyeardatadict[i][2] 
     for row in firmyeardata3: 
      if row[1]==firm: 
       print firm  

而是通過整個列表進行迭代,這個代碼給我:

firmx 
firmx 
firmx 
firmx 
firmx 
firmx 
None 

None看起來像一個明顯的問題,但我不知道它是從哪裏來的,爲什麼它會中斷循環。

+0

csv的外觀如何? –

+0

這是一個原始爲.xlsx格式的交易列表。所以我們的目標是爲每家公司的交易添加質量。更具體地說,它有交易的其他方,日期,金額等。 – user2829187

+0

你是如何獲得'firmyeardatadict'? –

回答

1

您只能讀取一個csv.reader()對象一次(與其他文件一樣,順便說一句)。這意味着在第一個for row in firmyeardata3:循環完成後,沒有什麼可以繼續迭代了。

您可能想將CSV文件讀入列表中,然後重複進行迭代。