Seu código para criar a consulta não está tentando citar os valores de string:
cmd = "INSERT INTO resulttest (category, value, timestamp) VALUES (" + key + ", " + str(value) + ", " + str(timestamp) + ")"
Veja a instrução SQL que você imprimiu:
INSERT INTO resulttest (category, value, timestamp) VALUES (composed, 2, 1343186948.8)
A "categoria" não deveria ser citada?
Você não deveria estar compondo uma instrução SQL com operações de string em primeiro lugar. É assim que as vulnerabilidades de injeção de SQL acontecem. Em vez disso, você deve usar placeholders e deixar a biblioteca MySQL lidar com eles:
c.execute(
"INSERT INTO resulttest (category, value, timestamp) VALUES (?, ?, ?)",
(key, value, timestamp)
)