Хотя первоначальный автор, скорее всего, пошел дальше, я решил оставить здесь ответ для будущего Гуглера (как я ^ _ ^).
Я думаю, что здесь происходит следующая ошибка...
ValueError: parameters are of unsupported type
... фактически происходит из следующей строки (вопреки тому, что сказал автор).
s = c.execute("select score from score where id=?", id)
Проблема в том, чтоCursor.execute
принимает строку запроса в качестве первого параметра (который он имеет право), , но list
, tuple
или dict
в качестве второго параметра .В этом случае ему нужно обернуть этот id
в кортеж или список, например:
s = c.execute("select score from score where id=?", (id,))
Список или кортеж можно использовать с позиционными аргументами (то есть, когда вы используете знак вопроса ?
в качестве заполнителя).Вы также можете использовать dict
и :key
для именованных аргументов следующим образом:
s = c.execute("select score from score where id=:id", {"id": id})