为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

UYOU 2019-10-16 10:43:07
我有一本字典:mydict = {key1: value_a, key2: value_b, key3: value_c}我想以这种方式将数据写入dict.csv文件:key1: value_akey2: value_bkey3: value_c我写:import csvf = open('dict.csv','wb')w = csv.DictWriter(f,mydict.keys())w.writerow(mydict)f.close()但是现在我将所有键都放在一行中,而所有值都在下一行中。当我设法写一个这样的文件时,我也想将其读回到新的字典中。只是为了解释我的代码,该词典包含来自textctrls和复选框的值和布尔值(使用wxpython)。我想添加“保存设置”和“加载设置”按钮。保存设置应以上述方式将字典写入文件中(使用户更容易直接编辑csv文件),加载设置应从文件中读取并更新textctrl和复选框。
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

在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)

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


查看完整回答
反对 回复 2019-10-16
?
慕森王

TA贡献1777条经验 获得超3个赞

最简单的方法是忽略csv模块并自行格式化。


with open('my_file.csv', 'w') as f:

    [f.write('{0},{1}\n'.format(key, value)) for key, value in my_dict.items()]


查看完整回答
反对 回复 2019-10-16
  • 3 回答
  • 0 关注
  • 3490 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信