2016-09-28 14 views
0

私の最後の質問では、csvファイルのフレーズに値のセットを割り当てる方法を尋ねました。私はタプルのリストを作成するように言われましたが、これは素晴らしい結果でした。Pythonを使ってcsvを作成しようとしていて、 "list indices"エラーが発生しました

現在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

:また

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

を、あなただけのビルトインwriterows機能それほど冗長であることをを使用することができます。私はあなたが '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) 
    writer.writerows(clean_titles) 
関連する問題