2017-08-22 2 views
2

Ich gebe ein Wörterbuch aus, siehe Code unten. aber das Out erstellt zwei Zeilen. statt zwei Spalten.Python CSV gibt zwei Zeilen statt zwei Spalten aus

with open("<location of file>"+str(report_date)+".csv", 'w') as f: 
    w = csv.writer(f) 
    w.writerow(output_list.keys()) 
    w.writerow(output_list.values()) 

Excel Output:

Col 1 row 1, col 2, row 1, col 3 row 1 
Col 1 row 2, col2 row 2, col 3, row 2 

Ich möchte die Ausgabe als zwei Spalten sehen:
Spalte 1 den ganzen Weg nach unten für die Wörterbuch Keys
Spalte 2 den ganzen Weg nach unten für die Wörterverzeichniswerte

+0

Bitte korrigieren Sie Ihre Einrückung. Whitespace ist in Python meistens nicht optional. –

+0

Versuchen Sie Folgendes: https://stackoverflow.com/questions/4155106/python-csv-write-by-column-rather-than-row – itsmewiththeface

+0

Geben Sie auch eine Beispieleingabedatei an und beheben Sie sie Ihre Beispielausgabe. Es sieht sehr uneinheitlich aus. –

Antwort

4

Sie geben zwei Zeilen aus, weil Sie angeben, dass sie zwei Zeilen ausgeben sollen. Das macht writerow, wenn Sie es zweimal aufrufen. Sie müssen die einzelnen Positionen durchlaufen, wenn Sie pro Element zur Ausgabe einer Zeile wollen:

w = csv.writer(f) 
for item in output_list.items(): 
    w.writerow(item) 

item wird ein Zwei-Element-Tupel sein, die den Schlüssel und den Wert enthält.

+0

Vielen Dank! Das hat funktioniert. Ich sehe das Problem jetzt. Ist es möglich, zwischen jeder Zeile keine leere Zeile zu haben? Die Ausgabe enthält eine leere Zeile zwischen den Daten. @Mad Physiker –

+0

@OPM_OK. Ich kann diese Frage nicht beantworten, es sei denn, Sie geben eine Beispiel-output_list an, die das Problem reproduziert. –

+0

Auch ist es traditionell, eine Antwort auszuwählen, die Ihr Problem behebt. –

Verwandte Themen