我有一个字典列表,我想将其导出到csv。列表的格式如下:
dict_list=[{'Country':'US', 'Industry':'Telecom', 'Score':105},
{'Country':'US', 'Industry':'Banking', 'Score':145}]
我希望键能够将列名称和值作为每一行。有人可以帮我解决这个问题。
预期产出:
Country Industry Score
US Telecom 105
US Banking 145
答案 0 :(得分:2)
您可以使用csv库
result
或更紧凑。
import csv
dict_list=[{'Country':'US', 'Industry':'Telecom', 'Score':105},
{'Country':'US', 'Industry':'Banking', 'Score':145}]
with open('names.csv', 'w') as csvfile:
fieldnames = ['Country', 'Industry', 'Score']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames, delimiter='\t')
writer.writeheader()
for d in dict_list:
writer.writerow(d)
plus:假设列表中的每个元素都包含所有相应的元素,我们可以使用以下代码来获取标题。谢谢@martineau
with open('names.csv', 'w') as csvfile:
fieldnames = ['Country', 'Industry', 'Score']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames, delimiter='\t')
writer.writeheader()
writer.writerows(dict_list)
答案 1 :(得分:0)
您可以使用pandas
:
>>> import pandas as pd
>>> df = pd.DataFrame(dict_list)
>>> df
Country Industry Score
0 US Telecom 105
1 US Banking 145
>>> pd.DataFrame.to_csv(df, 'test.csv', sep=',', index=False)
这里有sep
个逗号为逗号,您可以根据自己的意愿使用。
Beagle:~ kumarshubham$ cat test.csv
Country,Industry,Score
US,Telecom,105
US,Banking,145
答案 2 :(得分:0)
import pandas as pd
dict_list=[{'Country':'US', 'Industry':'Telecom', 'Score':105},{'Country':'US', 'Industry':'Banking', 'Score':145}]
df= pd.DataFrame(dict_list)
df.set_index('Country').to_csv('test.csv')