【发布时间】:2012-01-30 22:20:34
【问题描述】:
我有一本字典:
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 文件),加载设置应从文件中读取并更新 textctrls 和复选框。
【问题讨论】:
-
你能提供一个更好的例子来说明你想要什么作为输出吗?你上面的“风格”不是CSV。你在找
key1, value_a [linebreak] key2, value_b [linebreak] key3, value_c吗? -
另一种方法是使用
repr()写出字典,然后在读入时评估字符串。查看old SO post 以讨论str()与repr(),还有the docs。 -
除了我在下面的回答之外,如果您更喜欢比普通 CSV 文件更复杂的东西,您可能需要查看
ConfigParser模块 -
你描述的是典型的csv模块写出来的csv格式。如果您用相同的键写出多个字典,则键只写一次,在第一行,每个字典一行对应的值,按照与第 1 行中的键对齐的正确顺序。
标签: python csv dictionary