我有一個Python字典,如下所示:Python字典,以CSV所需格式
{
key1: [value1, value2, value3, n],
key2: [value1, value2, value3, n],
key3: [value1, value2, value3, n],
key4: [value1, value2, value3, n]
}
我想在每行包含鍵爲標題的格式,這些值寫入csv文件和在該關鍵字下的相關值(逐行)。
我有一個Python字典,如下所示:Python字典,以CSV所需格式
{
key1: [value1, value2, value3, n],
key2: [value1, value2, value3, n],
key3: [value1, value2, value3, n],
key4: [value1, value2, value3, n]
}
我想在每行包含鍵爲標題的格式,這些值寫入csv文件和在該關鍵字下的相關值(逐行)。
也許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)
產生與上面相同的輸出(可能使用不同的行終止符,具體取決於您的系統)。
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')
請出示您想要達到的CSV輸出。 –
使用'pd.DataFrame(your_dict).to_csv('file.csv')' – Zero