有一个包含3列的csv文件我试图创建一个字典。首先我读了这个文件:
fin = open('example.csv', 'r')
这些专栏如何制作字典?
答案 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)))