Ordenar el diccionario anidado por valor y el resto por otro valor, en Python

Considere este formato de diccionario.

{'KEY1':{'name':'google','date':20100701,'downloads':0},
 'KEY2':{'name':'chrome','date':20071010,'downloads':0},
 'KEY3':{'name':'python','date':20100710,'downloads':100}}

Me gustaría ordenar primero el diccionario por descargas, y luego todos los elementos sin descargas ordenados por fecha. Obviamente, un diccionario no se puede ordenar, solo necesito una lista ordenada de claves sobre las que puedo iterar.

['KEY3','KEY1','KEY2']

Ya puedo ordenar la lista por cualquier valor usandosorted, pero ¿cómo clasifico también por segundo valor?

Respuestas a la pregunta(4)

Su respuesta a la pregunta