这个问题已经在这里有了答案 :
水平写CSV (2个答案)
6年前关闭。
多亏了另一个线程,我才以Python初学者的身份成功地将字典写到了csv中:将字典写到
csv文件中,每个“键:值”一行]
dict1 = {0 : 24.7548, 1: 34.2422, 2: 19.3290}
csv看起来像这样:
0 24.7548
1 34.2422
2 19.3290
现在,我想知道用相同的键组织多个词典的最佳方法是什么。我希望将键作为第一列,然后在其后的各列中使用dict值,所有这些都具有第一行以按字典名称区分各列。
当然,有很多线程试图做类似的事情,例如:用键作为标题和值作为列向csv编写字典很麻烦,但是数据结构却不一样(还…)。也许词典必须先合并。
dict2 = {0 : 13.422, 1 : 9.2308, 2 : 20.132}
dict3 = {0 : 32.2422, 1 : 23.342, 2 : 32.424}
我理想的输出:
ID dict1 dict2 dict3
0 24.7548 13.422 32.2422
1 34.2422 9.2308 23.342
2 19.3290 20.132 32.424
我还不确定ID
键名的列名将如何工作。
使用csv模块并列出理解:
import csv
dict1 = {0: 33.422, 1: 39.2308, 2: 30.132}
dict2 = {0: 42.2422, 1: 43.342, 2: 42.424}
dict3 = {0: 13.422, 1: 9.2308, 2: 20.132}
dict4 = {0: 32.2422, 1: 23.342, 2: 32.424}
dicts = dict1, dict2, dict3, dict4
with open('my_data.csv', 'wb') as ofile:
writer = csv.writer(ofile, delimiter='\t')
writer.writerow(['ID', 'dict1', 'dict2', 'dict3', 'dict4'])
for key in dict1.iterkeys():
writer.writerow([key] + [d[key] for d in dicts])
请注意,默认情况下字典是无序的,因此,如果您希望键以升序排列,则必须对键进行排序:
for key in sorted(dict1.iterkeys(), key=lambda x: int(x)):
writer.writerow([key] + [d[key] for d in dicts])
如果需要处理无法确定所有字典具有相同键的情况,则需要更改一些小内容:
with open('my_data.csv', 'wb') as ofile:
writer = csv.writer(ofile, delimiter='\t')
writer.writerow(['ID', 'dict1', 'dict2', 'dict3', 'dict4'])
keys = set(d.keys() for d in dicts)
for key in keys:
writer.writerow([key] + [d.get(key, None) for d in dicts])
问题内容: 我认为我应该完成一项我似乎无法解决的非常简单的任务。 如何将Python字典写入csv文件?我想要的只是将字典键写入文件的第一行,并将键值写入第二行。 我最接近的是以下内容(我是从别人的帖子中获得的): 问题是,上面的代码似乎只将密钥写入第一行,仅此而已。我没有将值写入第二行。 有任何想法吗? 问题答案: 您使用的是期望字典列表而不是字典的列表。您只想DictWriter.writer
问题内容: 我正在努力将列表字典写入.csv文件。 这是我的字典的样子: 我希望.csv文件看起来像: 首先,我写标题: 到目前为止很好…但是,我的问题是我不知道如何将一个列表分配给相应的列。例如: 将随机填充列。另一个问题是,我必须手动填写键,并且不能将其用于具有4个键的另一本词典。 问题答案: 如果您不关心列的顺序(因为字典是无序的),则可以简单地使用: 结果: 如果您确实关心订单,则需要对键
问题内容: 我有一本字典: 我想以这种方式将数据写入dict.csv文件: 我写: 但是现在我将所有键都放在一行中,而所有值都在下一行中。 当我设法写一个这样的文件时,我也想将其读回到新的字典中。 只是为了解释我的代码,该词典包含来自textctrls和复选框的值和布尔值(使用wxpython)。我要添加“保存设置”和“加载设置”按钮。保存设置应以上述方式将字典写入文件(以使用户更容易直接编辑cs
我在做一个CSC 110项目。尽管我们还没有学过字典,我还是试着用字典来完成我们的作业。 我有一份国家和他们赢得多少奖牌的档案,用新的行字符隔开。例如: 虽然这是有效的,但它是肮脏和过于复杂。我正想出一个新方法来做这件事。
问题内容: 我正在尝试将嵌套的字典写入.csv文件。这是一个简单的示例: 这使我得到一个包含两列的表:第一个包含; 第二个包含[2,1,1](或子词典中的相应值)。我想要一个有四列的表:一列对应的列表元素,然后三列对应的列表元素。 问题答案: 更改: 至: 否则,您会尝试向csv编写类似的内容,而您的意思是。 如Padraic所述,您可能希望更改为或避免随机行为。
问题内容: 快速将NSDictionaries写入文件有局限性。根据我从api文档中学到的知识和这个答案,键类型应该是NSString,值类型也应该是NSx类型,并且Int,String和其他swift类型可能不起作用。问题是,如果我有一个像这样的字典:如何快速将其写入plist文件或从plist文件读取? 问题答案: 无论如何,当您要存储到文件时,它必须是协议的子类并符合协议。像这样: 然后,这