2016-09-28 21 views
0

在我最後一個問題中,我問了如何讓python爲csv文件中的短語分配一組值。我被告知要創建一個元組列表,這個工作很好。嘗試使用python創建csv,並獲取「列表索引」錯誤

目前我的名單,被稱爲clean_titles看起來是這樣的:

[('a', 1), 
('a', 1), 
('a', 1), 
('a', 1), 
('a', 1), 
('a', 1), 
('a', 1), 
('a', 1), 
('b', 2), 
('b', 2), 
('b', 2), 
('b', 2), 
('b', 2), 
('b', 2), 
('c', 3), 
('c', 3), 
('c', 3), 
('c', 3), 
('c', 3)] 

現在我想將這個列表,並將其導出爲CSV文件。我想要一列中的短語名稱和另一列中的分配號碼。

with open("fiancee_wordfreq.csv" , "wb") as f: 
    writer = csv.writer(f) 
    for val in clean_titles: 
    writer.writerow([val]) 

但我不斷收到錯誤信息「列表索引必須是整數不是Unicode」

我在做什麼錯還是我失去了什麼。謝謝你的幫助。

+3

我可以運行沒有錯誤代碼。雖然我懷疑你想要'val'的括號。 – FamousJameous

+0

而且我將假設'fiancee_wordfreq.csv'沒有被用於惡意目的...... :) – brianpck

+1

如果你使用的是Python3,那麼在mode參數中不需要'b'。 – Abdou

回答

2

(我的答案用於Python3)

您正在以「字節」模式打開文件。它的工作對我來說,當我刪除了「B」的說法:

with open("testabc.csv" , "w") as f: 
    writer = csv.writer(f) 
    for val in clean_titles: 
    writer.writerow(val) 

另外,你可以只使用一個內置writerows功能是更簡潔:

with open("testabc.csv" , "w") as f: 
    writer = csv.writer(f) 
    writer.writerows(clean_titles) 
相關問題