将csv读入字典,每个值有2个键

时间:2017-02-11 01:33:33

标签: python python-3.x dictionary

我有一个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关联制作元组?

1 个答案:

答案 0 :(得分:2)

如果您手动运行代码,您会看到csv_dictionary[row['name']]csv_dictionary[row['pos']]是独立的声明。在您的示例中,如果您在第0行运行代码,它会为您提供csv_dictionary {"a": "10.0", "1": "10.0"}

如果你想把元组作为键,你需要使用一个元组:csv_dictionary[row['name'], row['pos']] = row['eff']