2017-10-17 71 views
0

我有一個Python字典,如下所示:Python字典,以CSV所需格式

{ 
    key1: [value1, value2, value3, n], 
    key2: [value1, value2, value3, n], 
    key3: [value1, value2, value3, n], 
    key4: [value1, value2, value3, n] 
} 

我想在每行包含鍵爲標題的格式,這些值寫入csv文件和在該關鍵字下的相關值(逐行)。

+1

請出示您想要達到的CSV輸出。 –

+4

使用'pd.DataFrame(your_dict).to_csv('file.csv')' – Zero

回答

1

也許pandas可以爲您提供實現這一目標的一個更直接的方式,但如果你只是想依靠從標準庫中的csv包,下面簡單方法應該做的:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import csv 


data = { 
    'key1': ['value1', 'value2', 'value3', 'n'], 
    'key2': ['value1', 'value2', 'value3', 'n'], 
    'key3': ['value1', 'value2', 'value3', 'n'], 
    'key4': ['value1', 'value2', 'value3', 'n'] 
} 

header = data.keys() 
no_rows = len(data[list(header)[0]]) 

with open('out.csv', 'w', newline='') as csvfile: 
    csvwriter = csv.writer(csvfile, delimiter=',') 
    csvwriter.writerow(header) 
    for row in range(no_rows): 
     csvwriter.writerow([data[key][row] for key in header]) 

此結果在

key1,key2,key3,key4 
value1,value1,value1,value1 
value2,value2,value2,value2 
value3,value3,value3,value3 
n,n,n,n 

希望這有助於!

編輯

由於這是目前公認的答案,我覺得我應該補充一點,pandas.DataFrame.to_csv確實提供了實現這一目標的更直接的方式,在其他的答案中提到:

import pandas as pd 

pd.DataFrame(data).to_csv('out.csv', index=False) 

產生與上面相同的輸出(可能使用不同的行終止符,具體取決於您的系統)。

2

pandas提供了一個非常簡單的解決問題的方法 -

import pandas as pd 
df = pd.DataFrame({ 
    'key1': ['value1', 'value2', 'value3', 'n'], 
    'key2': ['value1', 'value2', 'value3', 'n'], 
    'key3': ['value1', 'value2', 'value3', 'n'], 
    'key4': ['value1', 'value2', 'value3', 'n'] 
}) 
df.to_csv('/path/to/file')