Python将csv写入字典,标题为键,行为值

时间:2014-11-12 07:51:04

标签: python csv dictionary

我有一个csv文件test.csv,如下所示:

1,2,3
a,b,c
d,e,f

我希望上面看起来像字典,如下所示:

{"1":"a", "2":"b", "3":"c"}
{"1":"d", "2":"e", "3":"f"}

其中标题1,2,3是键,行是值。

我不太清楚如何使用csv.DictReader完成此操作。以上样本只是一个样本。我正在使用的实际数据有很多列,因此,我无法通过使用索引并手动将它们放入字典来访问每一行。

2 个答案:

答案 0 :(得分:21)

回答我自己的问题。在尝试了一段时间后,我刚刚玩了一下,并添加了for循环。

with open("test.csv") as f:
    records = csv.DictReader(f)
    for row in records:
         print row

这给出了我想要的输出

{'1': 'a', '3': 'c', '2': 'b'}
{'1': 'd', '3': 'f', '2': 'e'}

答案 1 :(得分:8)

默认情况下,第一行将作为csv.DictReader

中的字段名称

你可以尝试

>>> a = open('/tmp/test.csv')
>>> a = csv.DictReader(open('/tmp/test.csv'), delimiter=',')
>>> [x for x in a]
[{'1': 'a', '3': 'c', '2': 'b'}, {'1': 'd', '3': 'f', '2': 'e'}]

这可能是你想要的