0

重複の可能性:
CSVファイルから辞書を作成する

辞書をCSVファイルに印刷しようとすると問題が発生します。辞書には現在4つの列がありますが、4つの列すべてが1つの単一の列に印刷されます。CSVファイルへの書き込みに使用しているforループが原因である可能性がありますが、よくわかりません。各列に辞書を印刷させようとしています。

サンプルデータ:

     Date        First Name     Last Name     Score
12/28/2012 15:15        John          Smith        20
12/29/2012 15:15        Alex          Jones        38
12/30/2012 15:15      Michael       Carpenter      25

以下は、いくつかのコードの抜粋です。

import csv

csvWriter = csv.writer(open("C:\\Users\\Chris\\Desktop\\test_out.csv", 'w'), delimiter=' ', quotechar=' ', quoting=csv.QUOTE_MINIMAL)

上記のCSVファイルを読み取るためのforループ:

リーダーの行の場合:

for k, v in row.items():

    if not k in mydict:
        mydict[k] = [v]
    else:
        mydict[k].append(v)

辞書キーをCSVファイルに出力するためのforループ。

for item in mydict.keys():
    csvWriter.writerow(item)

現在の出力(列見出し):

D a t e

F i r s t    N a m e

L a s t      N a m e

S c o r e

必要な出力(列見出し):

Date      First Name       Last Name       Score

どんな助けでも大歓迎です。

4

2 に答える 2

3

私はあなたの構造をよりよく理解したので、これを試してください:

#first write column headers
csvWriter.writerow(list(mydict.keys())

#now data, assuming each column has the same # of values
for i in xrange(len(mydict['Date'])):
    csvWriter.writerow([mydict[k][i] for k in mydict.keys()])
于 2013-01-02T18:34:10.373 に答える
1

Python 2:

csvWriter.writerow(mydict.keys())

Python 3:

csvWriter.writerow(list(mydict.keys()))
于 2013-01-02T18:39:56.197 に答える