la segunda parte es correcta pero en vez de poner esto ( %s, %s, %s, %s, "UniqueCourseName", CURDATE() )
usa este ( %s, %s, %s, %s, %s, %s )
y:
cursor.execute(sql2, (all[i]['Key1'], all[i]['Key2'],
all[i]['Key3'], all[i]['Key4']),"UniqueCourseName", CURDATE())
si imprime (todos [0]), verá algo como
'Creator_Id' :'value1'
'Record_Id,':'value2'
' Course_Num':'value3'
' SiteCode':'value3'
' coursename ':'value4'
' datestamp':value5
y 'Key' hacen referencia a author_id, porque es un diccionario.
si devuelve una tupla entonces:
cursor.execute(sql2, (i[0], i[1],
i[2], i[3]),"UniqueCourseName", CURDATE())