Я работаю над проектом и получаю ошибку типа, которую я не понимаю, как исправить.Я ищу справку о том, что я пропускаю и как исправить эту ошибку.
Ниже приведена функция, которая создает ошибку.Я напечатал словарь и списки, которые я создал, чтобы вы все могли видеть, что это за данные.Мне кажется, что все индексы в списке являются целыми числами, и именно это меня смущает.
def summarize_points(submissions):
print(submissions[0])
pointsPossible = []
groupWeight = []
userScore = []
for assignment in submissions:
if assignment['workflow_state'] == 'graded':
pointsPossible.append(int(assignment['assignment']
['points_possible']))
groupWeight.append(int(assignment['assignment']['group']
['group_weight']))
userScore.append(int(assignment['score']))
pass
pass
print('\n\n\n\nTest Data \n\n\n')
print('pointsPossible')
print(pointsPossible)
print('\ngroupWeight')
print(groupWeight)
print('\nuserScore')
print(userScore)
weightedTotalPoints = []
weightedUserScore = []
for assignment in submissions:
weightedtotalPointsAddition = int(pointsPossible[assignment]) * int(groupWeight[assignment])
weightedTotalPoints.append(weightedtotalPointsAddition)
weightedUserScoreAddition = int(userScore[assignment]) * int(groupWeight[assignment])
weightedUserScore.append(weightedUserScoreAddition)
currentGrade = sum(weightedUserScore) / sum(weightedTotalPoints)
currentGrade = round(currentGrade)
print(weightedtotalPoints)
print(weightedUserScore)
print(currentGrade)
Ниже это то, что выводится на консоль
{'missing': False, 'submitted_at': '2017-08-28T23:51:13Z', 'assignment': {'due_at': '2017-08-30T16:20:00Z', 'lock_at': '2017-10-01T00:00:00Z', 'name': '#1.2) Quiz: Introduction', 'id': 270567, 'unlock_at': '2017-08-27T16:40:00Z', 'points_possible': 10.0, 'assignment_group_id': 82390, 'group': {'rules': {}, 'name': 'Learning Quizzes', 'id': 82390, 'group_weight': 25}}, 'assignment_id': 270567, 'late': False, 'attempt': 3, 'grader_id': 10926, 'workflow_state': 'graded', 'score': 9, 'graded_at': '2017-09-12T13:04:04Z', 'seconds_late': -145726, 'excused': False, 'user_id': 42}
Test Data
pointsPossible
[10, 10, 1, 6, 10, 1, 7, 10, 4, 6, 5, 4, 7, 4, 5, 7, 5, 4, 3, 10, 2, 7, 6, 10, 7, 5, 10, 4, 6, 5, 0, 5, 16, 7, 3, 6, 5, 10, 10, 10, 5, 7, 5, 9, 4, 5, 6, 2, 21, 6, 5, 10, 3, 4, 9, 4, 6, 2, 5, 6, 17, 8, 5, 11, 4, 14, 3, 5, 7, 3, 4, 9, 4, 8, 3, 5, 3, 7, 10, 5, 10, 7, 7, 7, 10, 9, 9, 5, 5, 5]
groupWeight
[25, 25, 10, 25, 25, 25, 25, 10, 25, 10, 25, 10, 25, 25, 10, 10, 10, 25, 25, 25, 10, 25, 25, 25, 25, 10, 25, 25, 25, 25, 25, 10, 25, 25, 25, 25, 10, 25, 25, 25, 25, 25, 10, 25, 25, 25, 25, 10, 25, 25, 10, 25, 25, 25, 25, 25, 10, 10, 25, 10, 25, 25, 10, 25, 25, 25, 25, 25, 25, 10, 25, 25, 25, 25, 25, 10, 10, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 10]
userScore
[9, 9, 0, 5, 9, 0, 6, 9, 3, 5, 4, 3, 6, 3, 4, 6, 4, 3, 2, 9, 1, 7, 5, 9, 6, 4, 9, 3, 5, 4, 0, 4, 14, 6, 2, 5, 4, 9, 9, 9, 4, 6, 4, 8, 3, 4, 5, 1, 19, 5, 4, 9, 2, 3, 8, 3, 5, 1, 4, 5, 15, 7, 4, 10, 3, 13, 2, 4, 6, 2, 3, 8, 3, 7, 2, 4, 2, 6, 9, 4, 9, 6, 6, 6, 9, 8, 8, 4, 4, 4]
Нижеэто ошибка
File "path", line 97, in summarize_points
weightedtotalPointsAddition = int(pointsPossible[assignment]) *
int(groupWeight[assignment])
TypeError: list indices must be integers or slices, not dict