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}) .