csv.reader报告值超出范围



我正在尝试将csv文件转换为python数据字典。

这是我的代码:

import csv
picset = Set_1
with open('/Users/vp_enc_' + str(picset) + '_eeg_trigger_codes.csv', mode='r') as f:
reader = csv.reader(f)
triggerdict = dict((rows[0],{'code': rows[1], 'letter': rows[2], 'marker': rows[3], 'r': rows[4], 'g': rows[5], 'b': rows[6]}) for rows in reader)

以下是csv文件的初始行:

code,letter,marker,r,g,b
107Neg1,A,151,84,4,1
1Neg1,A,152,0,5,1
6Neg1,A,153,4,5,1
7Neg1,A,154,16,5,1
10Neg1,A,155,20,5,1
12Neg1,A,156,64,5,1
13Neg1,A,157,68,5,1
17Neg1,A,158,80,5,1
21Neg1,A,159,84,5,1
22Neg1,A,160,0,16,1
24Neg1,A,161,4,16,1
25Neg1,A,162,16,16,1
28Neg1,A,163,20,16,1
30Neg1,A,164,64,16,1
31Neg1,A,165,68,16,1
34Neg1,A,166,80,16,1
35Neg1,A,167,84,16,1
36Neg1,A,168,0,17,1
41Neg1,A,169,4,17,1
47Neg1,A,170,16,17,1
50Neg1,A,171,20,17,1
51Neg1,A,172,64,17,1
53Neg1,A,173,68,17,1
58Neg1,A,174,80,17,1
62Neg1,A,175,84,17,1

这项工作:

with open('/Users/vp_enc_' + str(picset) + '_eeg_trigger_codes.csv', mode='r') as f:
reader = csv.reader(f)
triggerdict = dict((rows[0],{'code': rows[1], 'letter': rows[2], 'marker': rows[3], 'r': rows[4]}) for rows in reader)

但当我包括第5行和第6行时,会出现以下错误:

Traceback (most recent call last):
File "<input>", line 3, in <module>
File "<input>", line 3, in <genexpr>
IndexError: list index out of range

尝试进行故障排除,但不清楚出现错误的原因。

csv文件有6列,rows[6]正试图访问第7列的值,因为索引从零开始。因此,由于第7个元素不存在,它会引发IndexError: list index out of range错误。

最新更新