Python将csv写入字典列表,其中标题作为键,行作为值

Posted

技术标签:

【中文标题】Python将csv写入字典列表,其中标题作为键,行作为值【英文标题】:Python writing a csv to a list of dictionaries with headers as keys and rows as values 【发布时间】:2015-01-08 23:59:33 【问题描述】:

我有一个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 完成这项工作。上面的样本就是这样,一个样本。我正在使用的实际数据有很多列,因此,我无法通过使用其索引并手动将它们放入字典来访问每一行。

【问题讨论】:

看看这个:***.com/questions/19697846/python-csv-to-json 谢谢!这个链接对我的问题也很有帮助。 【参考方案1】:

回答我自己的问题。在尝试了一段时间后,我现在又玩了一点,并添加了 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'

【讨论】:

任何好奇的人,请将dialect='excel-tab' 添加到您的 DictReader 调用中,它适用于标签。【参考方案2】:

默认情况下,第一行将作为 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']

这可能是你想要的

【讨论】:

这也很棒!谢谢! :)

以上是关于Python将csv写入字典列表,其中标题作为键,行作为值的主要内容,如果未能解决你的问题,请参考以下文章

如何将带有嵌套字典的列表写入 csv 文件?

将 Python 列表和字典中的数据写入 CSV

Python:使用多个标题行写入 CSV

将python字典写入CSV列:第一列的键,第二列的值

读取csv字典变成str了怎么办

如何从 CSV 创建字典,其中两列作为 Python 中的键 [重复]