拥有一个包含 3 列的 csv 文件,我试图制作一本字典。首先我阅读了文件:
fin = open('example.csv', 'r')
有了这些专栏,我如何制作字典?
编辑以回应 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
上的模块文档
您可以在 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)
你没有说值应该是什么样子,所以:
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']}
您还可以使用 numpy loadtxt 并创建字典。
from numpy import loadtxt
a,b,c = loadtxt('filename.csv', sep=',', unpack=true)
dictionary = dict(zip(a,(b,c)))