如何将字典列表转换为csv?

时间:2017-04-22 04:08:13

标签: python csv dictionary

我有一个字典列表,我想将其导出到csv。列表的格式如下:

dict_list=[{'Country':'US', 'Industry':'Telecom', 'Score':105},
           {'Country':'US', 'Industry':'Banking', 'Score':145}]

我希望键能够将列名称和值作为每一行。有人可以帮我解决这个问题。

预期产出:

Country    Industry    Score
US         Telecom     105
US         Banking     145

3 个答案:

答案 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')