如何读取 2 列 csv 文件并创建字典?

aht*_*rix 6 python csv dictionary python-2.7

例如给出以下 csv

ID, type
1 , A
2 , B
3 , C
Run Code Online (Sandbox Code Playgroud)

它应该生成一个看起来像这样的字典

{'1':A, '2':B, '3':C}
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我所拥有的,但它将整个列关联到 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
Run Code Online (Sandbox Code Playgroud)

Eri*_*ard 8

当您遍历每个rowin 时reader,该row变量包含在字典中创建新条目所需的所有信息。你可以简单地写

for row in reader:
    result[row['ID']] = row[' type']
Run Code Online (Sandbox Code Playgroud)

制作你想要的字典。


Hai*_* Vu 5

它比你想象的要简单:

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
Run Code Online (Sandbox Code Playgroud)

输出:

{'1 ': 'A', '3 ': 'C', '2 ': 'B'}
Run Code Online (Sandbox Code Playgroud)

基本上,reader产生一系列行,每行有两个元素,将其输入dict并制作。