填充Defaultdict Python时出错

填充Defaultdict Python时出错,python,dictionary,defaultdict,Python,Dictionary,Defaultdict,我试图用csv数据填充默认字典,但我得到一个关键错误 for i in range(0,1): #https://docs.python.org/2/library/collections.html#collections.defaultdict result = co.defaultdict(list) with open(os.path.join(inputdir,tablelist[i])) as f: csv_reader = csv.read

我试图用csv数据填充默认字典,但我得到一个关键错误

for i in range(0,1):

    #https://docs.python.org/2/library/collections.html#collections.defaultdict
    result = co.defaultdict(list)
    with open(os.path.join(inputdir,tablelist[i])) as f:

        csv_reader = csv.reader(f)
        csv_headings = next(csv_reader)
        read = csv.DictReader(f)

        for line in read:
            for j in range(1,len(csv_headings)):
  error here--->result[line[csv_headings[0]]].append(line[csv_headings[j]])  
用于csv数据

API,CNTYNM,PRMT,
4700100002,Barbour,2,
4700100003,Barbour,3,
4700100004,Barbour,4,

关键的错误是API,这对我来说意味着dictreader的某些功能没有按预期工作。有人能给出一些建议吗

缺少到的
字段名
参数。如果您修改代码以将
csv\u haedings
传递给
DictReader
它将工作(希望如预期的那样):


天啊,我已经有半个小时没看到了。谢谢,我没有意识到字段名必须传递给dictreader,但是它确实让Sne感到很奇怪
for i in range(0,1):

    #https://docs.python.org/2/library/collections.html#collections.defaultdict
    result = co.defaultdict(list)
    with open(os.path.join(inputdir,tablelist[i])) as f:

        csv_reader = csv.reader(f)
        csv_headings = next(csv_reader)
        read = csv.DictReader(f, fieldnames=csv_headings)

        for line in read:
            for j in range(1,len(csv_headings)):
                result[line[csv_headings[0]]].append(line[csv_headings[j]])