例如,给出以下csv
ID, type
1 , A
2 , B
3 , C
它应该生成一个看起来像这样的字典
{'1':A, '2':B, '3':C}
这是我迄今为止所拥有的内容,但它将整个列与1个字典相关联
import csv
reader = csv.DictReader(open('TIS_annotation.csv'))
result = {}
for row in reader:
for column, value in row.iteritems():
result.setdefault(column, []).append(value)
print result
答案 0 :(得分:3)
当您遍历row
中的每个reader
时,row
变量包含为字典创建新条目所需的所有信息。你可以简单地写
for row in reader:
result[row['ID']] = row[' type']
制作你想要的词典。
答案 1 :(得分:3)
比你想象的要简单:
import csv
with open('TIS_annotation.csv') as f:
next(f) # Skip the header
reader = csv.reader(f, skipinitialspace=True)
result = dict(reader)
print result
输出:
{'1 ': 'A', '3 ': 'C', '2 ': 'B'}
基本上,reader
会产生一系列行,每行包含两个元素,将其输入dict
并将其制作完成。
答案 2 :(得分:0)
for row in reader:
ID = row[0]
data_type = row[1]
myTuples.append(tuple([ID, data_type]))
result = dict(myTuples)
print result
{'1 ': ' A', '3 ': ' C', '2 ': ' B', 'ID': ' type'}
您可以在阅读数据/ csv时跳过标题或第一行,以便' ID':'类型' 不会出现在dict中。
next(f) #for skipping first row in the file
myTuples = [] #store tuples from col1 and col2
for row in reader:
myTuples.append(tuple([row[0], row[1]])) #append col1 and col 2 to myTuples
result = dict(myTuples)
print result
{' 1':' A',' 3':' C',' 2':' B'}