collection.find
leva apenas um argumento posicional e você está dando dois. Altere suas chamadas para que fiquem assim:
grades.find({"type": "homework", "student_id": i})
. collection.find
leva apenas um argumento posicional e você está dando dois. grades.find({"type": "homework", "student_id": i})
.