Como ordenar dicionários de objetos por valor de atributo em python?

Eu gostaria de fazer uma iteração sobre um dicionário de objetos de uma maneira classificada como atributo

import operator

class Student:
        def __init__(self, name, grade, age):
                self.name = name
                self.grade = grade
                self.age = age


studi1=Student('john', 'A', 15)
studi2=Student('dave', 'B', 10)
studi3=Student('jane', 'B', 12)

student_Dict = {}
student_Dict[studi1.name]=studi1
student_Dict[studi2.name]=studi2
student_Dict[studi3.name]=studi3

for key in (sorted(student_Dict, key=operator.attrgetter('age'))):
    print(key)

Isso me dá a mensagem eror: "AttributeError: 'str' objeto não tem atributo 'age'"