当前位置: 首页 > 面试题库 >

将字典写入csv文件,每个“键:值”一行

仰城
2023-03-14
问题内容

我有一本字典:

mydict = {key1: value_a, key2: value_b, key3: value_c}

我想以这种方式将数据写入dict.csv文件:

key1: value_a
key2: value_b
key3: value_c

我写:

import csv
f = open('dict.csv','wb')
w = csv.DictWriter(f,mydict.keys())
w.writerow(mydict)
f.close()

但是现在我将所有键都放在一行中,而所有值都在下一行中。

当我设法写一个这样的文件时,我也想将其读回到新的字典中。

只是为了解释我的代码,该词典包含来自textctrls和复选框的值和布尔值(使用wxpython)。我要添加“保存设置”和“加载设置”按钮。保存设置应以上述方式将字典写入文件(以使用户更容易直接编辑csv文件),加载设置应从文件中读取并更新textctrl和复选框。


问题答案:

在DictWriter不工作,你所期望的方式。

with open('dict.csv', 'w') as csv_file:  
    writer = csv.writer(csv_file)
    for key, value in mydict.items():
       writer.writerow([key, value])

读回:

with open('dict.csv') as csv_file:
    reader = csv.reader(csv_file)
    mydict = dict(reader)

这非常紧凑,但是它假定您在读取时不需要执行任何类型转换



 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 水平写CSV (2个答案) 6年前关闭。 多亏了另一个线程,我才以Python初学者的身份成功地将字典写到了csv中:将字典写到 csv文件中,每个“键:值”一行] csv看起来像这样: 现在,我想知道用相同的键组织多个词典的最佳方法是什么。我希望将键作为第一列,然后在其后的各列中使用dict值,所有这些都具有第一行以按字典名称区分各列。 当然,有很多线

  • 问题内容: 我认为我应该完成一项我似乎无法解决的非常简单的任务。 如何将Python字典写入csv文件?我想要的只是将字典键写入文件的第一行,并将键值写入第二行。 我最接近的是以下内容(我是从别人的帖子中获得的): 问题是,上面的代码似乎只将密钥写入第一行,仅此而已。我没有将值写入第二行。 有任何想法吗? 问题答案: 您使用的是期望字典列表而不是字典的列表。您只想DictWriter.writer

  • 问题内容: 我正在努力将列表字典写入.csv文件。 这是我的字典的样子: 我希望.csv文件看起来像: 首先,我写标题: 到目前为止很好…但是,我的问题是我不知道如何将一个列表分配给相应的列。例如: 将随机填充列。另一个问题是,我必须手动填写键,并且不能将其用于具有4个键的另一本词典。 问题答案: 如果您不关心列的顺序(因为字典是无序的),则可以简单地使用: 结果: 如果您确实关心订单,则需要对键

  • 我在做一个CSC 110项目。尽管我们还没有学过字典,我还是试着用字典来完成我们的作业。 我有一份国家和他们赢得多少奖牌的档案,用新的行字符隔开。例如: 虽然这是有效的,但它是肮脏和过于复杂。我正想出一个新方法来做这件事。

  • 问题内容: 我正在尝试将嵌套的字典写入.csv文件。这是一个简单的示例: 这使我得到一个包含两列的表:第一个包含; 第二个包含[2,1,1](或子词典中的相应值)。我想要一个有四列的表:一列对应的列表元素,然后三列对应的列表元素。 问题答案: 更改: 至: 否则,您会尝试向csv编写类似的内容,而您的意思是。 如Padraic所述,您可能希望更改为或避免随机行为。

  • 我有一个长长的列表,列表的形式如下--- i、 列表中的值有不同的类型——float、int、string。如何将其写入csv文件,使输出的csv文件看起来像