3 回答

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
首先,您必須確保字典值中的所有列表都具有相同的長(zhǎng)度。任何其他情況都是不好的做法。
假設(shè)是這種情況,例如
d = {'ID':[1,2,3,4,5,6,7],
'Name':['A','B','C','D','E','F','G'],
'Flag':[True, False, False, False, False, False, False],
'City':['']*7,
}
現(xiàn)在您可以構(gòu)建一個(gè)數(shù)據(jù)框
import pandas as pd
df = pd.DataFrame.from_dict(d)
并將其轉(zhuǎn)換為 CSV
df.to_csv('/tmp/test.csv', index=False)

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果您不是像您提到的那樣嚴(yán)格尋找 csv,并且可以在其中包含NaNs,請(qǐng)嘗試使用pandas.
import pandas as pd
d = {
"ID": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
"Name": ["A", "B", "C", "D", "E", "F", "G"],
"Flag": ["True"],
"City": "",
}
df = pd.DataFrame(dict([(k, pd.Series(v)) for k, v in d.items()]))
df.to_csv("1.csv",index=False)
這會(huì)用 填充不可用的元素NaN。
輸出:
ID Name Flag City
0 1 A True
1 2 B NaN NaN
2 3 C NaN NaN
3 4 D NaN NaN
4 5 E NaN NaN
5 6 F NaN NaN
6 7 G NaN NaN
7 8 NaN NaN NaN
8 9 NaN NaN NaN
9 10 NaN NaN NaN

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
import csv
columns = list(dict.keys())
try:
with open(output_file, 'w') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=columns)
writer.writeheader()
for data in dict:
writer.writerow(data)
except IOError:
print("I/O error")
添加回答
舉報(bào)