是否可以将字典词典写入CSV文件?

我指的字典格式如下(仅供参考,这些只是足球运动员):

player_list = {
    'Shkodran Mustafi': {'first': 'Shkodran','last': 'Mustafi','team': 'Arsenal'},'Héctor Bellerín': {'first': 'Héctor','last': 'Bellerín','Sead Kolasinac': {'first': 'Sead','last': 'Kolasinac','team': 'Arsenal'}
    }

是否可以使用此词典将类似下表的内容写入CSV?

First Name:    Last Name:     Team: 

Shkodran       Mustafi        Arsenal
Héctor         Bellerín       Arsenal
Sead           Kolasinac      Arsenal

在实现此目标方面的任何帮助将不胜感激! 谢谢!

xinandjsl0305 回答:是否可以将字典词典写入CSV文件?

如果您确实希望将内部字典中的列写入CSV文件,则可以使用Pandas轻松完成。

player_list = {
    'Shkodran Mustafi': {'first': 'Shkodran','last': 'Mustafi','team': 'Arsenal'},'Héctor Bellerín': {'first': 'Héctor','last': 'Bellerín','Sead Kolasinac': {'first': 'Sead','last': 'Kolasinac',}
import pandas as pd
df = pd.DataFrame(player_list).T
df.columns = ['First Name','Last Name','Team']
df.to_csv('test.csv',index=False)

将产生与您在问题中发布的表等效的CSV:

First Name,Last Name,Team
Shkodran,Mustafi,Arsenal
Héctor,Bellerín,Arsenal
Sead,Kolasinac,Arsenal
,

那么基本上是迭代字典并将其以.csv格式保存吗?

player_list = {
    'Shkodran Mustafi': {'first': 'Shkodran','team': 'Arsenal'}}

keys = ['first','last','team']

with open("data.csv",'w') as wf:
    wf.write("First Name:,Last Name:,Team:\n")
    for k,v in player_list.items():
        to_write = []
        for key in keys:
             to_write.append(str(v[key]))
        wf.write(','.join(to_write) + '\n')
,

在这种情况下,您甚至不必担心它是字典的事实。无论如何,您只输出“内部”字典,因此您可以执行以下操作:

player_list = {
'Shkodran Mustafi': {'first': 'Shkodran','team': 'Arsenal' }
}

with open('output.csv','w') as writer:
    writer.write("First Name:,Team:\n")
    for key,value in player_list.items():
        writer.write(value['first'] + ',' + value['last'] + ',' + value['team'] + '\n')

在这种情况下,只有3个值,因此我只使用了字符串连接,但是如果您要执行更多的值,则可能需要尝试类似@tgikal正在执行的操作。

,

CSV是一种可以表示任何哈希散列的格式,或者如果我猜对了您使用的是Python字典,则该格式。

您需要编写正确的解析器

一种方法是使用其他不同的分隔符来表示嵌套哈希,例如方括号{

{,Shkodran Mustafi,{,first,Shkodran,last,Mustafi,team,Arsenal,},}

我建议您使用json,yaml或hocon,它们在人眼上比较容易

,

您可能会发现有用的对象是csv.DictWriterhttps://docs.python.org/2/library/csv.html#csv.DictWriter

用法示例:

import csv

player_list = {
    'Shkodran Mustafi': {'first': 'Shkodran','team': 'Arsenal'}
}

with open("player_data.csv",'w') as fp:
    writer = csv.DictWriter(fp,fieldnames=['first','team'])
    writer.writeheader()
    for player_name,player_info in player_list.items():
        writer.writerow(player_info)
本文链接:https://www.f2er.com/3150089.html

大家都在问