如果您确实希望将内部字典中的列写入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.DictWriter
:https://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