a segunda parte está correta, mas em vez de colocar isso
( %s, %s, %s, %s, "UniqueCourseName", CURDATE() )
use este ( %s, %s, %s, %s, %s, %s )
e:cursor.execute(sql2, (all[i]['Key1'], all[i]['Key2'],
all[i]['Key3'], all[i]['Key4']),"UniqueCourseName", CURDATE())
se você imprimir(all[0]), você verá algo como
'Creator_Id' :'value1'
'Record_Id,':'value2'
' Course_Num':'value3'
' SiteCode':'value3'
' coursename ':'value4'
' datestamp':value5
e 'Key' fazem referência ao criador_id, porque é um dicionário.
se retornar uma tupla então:
cursor.execute(sql2, (i[0], i[1],
i[2], i[3]),"UniqueCourseName", CURDATE())