【发布时间】:2017-03-19 10:26:19
【问题描述】:
我正在使用 python 读取 CSV,这是代码。
train_csv = open('train.csv')
test_csv = open('test.csv')
train_data_reader = csv.DictReader(train_csv)
test_data_reader = csv.DictReader(test_csv)
row=[]
for row in train_data_reader:
X.append([int(item) for item in row[4:]])
char = row[1]
Y.append(charIntConversion(char))
train_id.append(row[0])
prediction.append(row[1])
for row in test_data_reader:
test_id.append(row[0])
test_X.append([int(item) for item in row[4:]]
当我尝试运行代码时,它显示 TypeError: unhashable type: 'slice' for
X.append([int(item) for item in row[4:]])
test_X.append([int(item) for item in row[4:]]
X 和 test_X 应包含 CSV 的第 4 列到最后一列的值。
我可以知道我的代码有什么问题吗?我该如何解决这个问题?
【问题讨论】:
-
您确定
row是一个列表吗?好像它可能是一本字典。确实,鉴于您专门使用 DictReader,完全不清楚您为什么会这么想。 -
我正在使用 DictReader 因为我想跳过第一行。但我没有意识到它是字典而不是列表。我已经修改了我的代码并解决了这个问题。非常感谢!