0

拥有一个包含 3 列的 csv 文件,我试图制作一本字典。首先我阅读了文件:

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

有了这些专栏,我如何制作字典?

4

4 回答 4

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.htmlcsv上的模块文档

于 2012-11-24T11:05:27.130 回答
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)
于 2012-11-24T10:01:38.523 回答
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']}
于 2012-11-24T10:21:13.003 回答
0

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

  from numpy import loadtxt

  a,b,c = loadtxt('filename.csv', sep=',', unpack=true)
  dictionary = dict(zip(a,(b,c)))
于 2012-11-24T12:07:38.870 回答