Skip to main content
 首页 » 编程设计

python之从带标题的 csv 创建字典

2025年05月04日13JeffreyZhao

我有一个如下所示的 csv 文件:

a, b, c, d 
1, 1, 2, 2 
2, 3, 3, 4 
2, 2, 1, 1 

我想将这个 csv 文件加载到字典中,这样我就可以得到

dict['a'] = 1, 2, 2 
dict['b'] = 1, 3, 2 
dict['c'] = 2, 3, 1 
dict['d'] = 2, 4, 1 

有没有办法在 csv 阅读器级别执行此操作?

我做到了这一点:

    import csv 
 
    headers = {} 
 
    with open('file.csv') as csvfile: 
 
        reader = csv.reader(csvfile, delimiter = ',') 
        count = 0; 
        for row in reader: 
            if count == 0: 
                for field in row: 
                    if field not in headers.keys(): 
                        headers[field] = [] 
            count +=1    

这会加载 header ,现在我想加载每个值。

请您参考如下方法:

您可以使用 DictReader。 然而, 如果输入文件在字段值周围包含空格, 它们需要手动剥离。

import csv 
 
with open('file.csv') as csvfile: 
    reader = csv.DictReader(csvfile, skipinitialspace=True) 
    d = {name: [] for name in reader.fieldnames} 
    for row in reader: 
        for name in reader.fieldnames: 
            d[name].append(row[name]) 
    print(d) 

感谢@temporalwolf对于Dialect.skipinitialspace把戏!