2017-02-11 91 views
1

2个键我有一个CSV文件结构如下:读CSV到字典,每值

+------+------+--------+ 
| name | pos | eff | 
+------+------+--------+ 
| a | 1 | 10.0 | 
| b | 1 |  42 | 
| c | 1 | 123 | 
+------+------+--------+ 

密钥值对应该是这样的,用一个元组:

hash = ('a', 1): [10.0] 

至今我有

import csv 

csv_dictionary = {} 

with open('test.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader: 
     csv_dictionary[row['name']]= row['eff'] 
     csv_dictionary[row['pos']] = row['eff'] 

但这似乎给每个值多个键。 csv文件是否需要每列中的唯一元素?

我该如何去制作一个元组nameposeff关联?

+0

'字典[(行[ '名称'],行[ '正'])] =行[ 'EFF']'? –

回答

2

如果手动运行代码,你会看到csv_dictionary[row['name']]csv_dictionary[row['pos']]是独立的语句。在您的例子,如果你在0行运行的代码,它给你的{"a": "10.0", "1": "10.0"}一个csv_dictionary

如果你想元组钥匙,你需要使用一个元组:csv_dictionary[row['name'], row['pos']] = row['eff']

+1

@martineau确实 - 答案已更新。 – tyteen4a03