使用python从csv文件的字典

时间:2012-11-24 09:57:12

标签: python csv

有一个包含3列的csv文件我试图创建一个字典。首先我读了这个文件:

fin = open('example.csv', 'r')

这些专栏如何制作字典?

4 个答案:

答案 0 :(得分:2)

已编辑以回应OP评论

我认为你要求的是转

a,123,456
b,333,444
c,888,3434

{'a': ('123', '456'), 'b': ('333', '444'), 'c': ('888', '3434')}

如果是这样,一个解决方案是使用csv.reader来解析文件,迭代行并填充你的最终字典。

with open('example.txt', 'rb') as src_file:
    csv_file = csv.reader(src_file)
    data = {}
    for row in csv_file:
        data[row[0]] = (row[1], row[2])

    print(data)

请参阅http://docs.python.org/2/library/csv.html

上的csv模块文档

答案 1 :(得分:1)

你可以在csv模块中使用dict_writer。

import csv

fieldnames = ['Column1', 'Column2', 'Column3']
dict_writer = csv.DictWriter(file('your.csv', 'wb'), fieldnames=fieldnames)
dict_writer.writerow(fieldnames)
dict_writer.writerows(rows)

答案 2 :(得分:1)

您没有说出这些值应该是什么样子,所以:

d={}
with open('example.csv', 'r') as file:
    for line in file:
        lst = line.strip().split(',')
        d[lst[0]] = lst[1:]

输出如下内容:

{'key1': ['v1', 'v2'], 'key2': ['v1', 'v2']}

答案 3 :(得分:0)

您也可以使用numpy loadtxt并创建字典。

  from numpy import loadtxt

  a,b,c = loadtxt('filename.csv', sep=',', unpack=true)
  dictionary = dict(zip(a,(b,c)))