La modifica di quanto segue dovrebbe risolvere il tuo problema:
sql = "INSERT INTO record (temperature,humidity) VALUES (%s, %s)"
val = ("2.3","4.5") # You can also use (2.3, 4.5)
mycursor.execute(sql,val)
L'API del database accetta le stringhe come argomenti e successivamente le converte nel tipo di dati appropriato. Il tuo codice genera un errore perché non si aspetta %d
o %f
tipi di dati (int o float).
Per maggiori informazioni su questo puoi guardare qui