当我测试测试用例并不断收到KeyError时,我陷入了这个问题,还有另一种解决方法吗? 所有文件都在共享的Google驱动器中。 https://drive.google.com/drive/folders/1OqrHxY42Cka9_H9pfA9VLQOkIuqoSQKN?usp=sharing
代码:
import csv
def read_votes(filename):
rows = []
columns = []
try:
with open(filename, 'r') as file:
csvreader = csv.reader(file)
column = next(csvreader)
for row in csvreader:
row.append(row)
dict{}
vote_dbase = {}
for row in rows:
state = row[0]
candidate = (row[1], row[2], row[3], row[4])
if int(row[3]) > 0:
if state in vote_dbase:
flag = 0
for i in range(len(vote_dbase[state])):
if row[1] < vote_dbase[state][i][0]:
vote_dbase[state].insert(i, candidate)
flag = 1
break
if flag == 0:
vote_dbase[state].append(candidate)
else:
vote_dbase[state] = [candidate]
return vote_dbase
except:
return False
答案 0 :(得分:0)
由于您看不到发生错误的测试,因此您的代码中尚不清楚您希望发生什么行为。
也就是说,进行一些基本的调试,似乎您没有正确处理输入值。问题出在
for row in csvreader:
row.append(row)
您将row
附加到自身而不是列表rows
。我想你想
for row in csvreader:
rows.append(row)
我还建议不要将所有内容放入try块,并且不要对异常进行任何处理。这意味着您可能会遇到错误,并且不会收到错误消息,该消息将帮助您调试代码。不要使用try块或对异常块执行以下操作:
except Exception as exception_instance:
print(exception_instance)
return False
您的代码中还有一个随机的dict{}
,这是行不通的。