Ошибка при вставке переменной в sqlite python

У меня проблема с вставкой переменной в sqlite3, и переменная хешируется. Вот мой код:

if passadefinir == passadefinir2:
    maindb.execute("DELETE FROM Password WHERE ID = 'not'")
    maindb.execute("INSERT INTO Password(ID) VALUES ('set')")
    encriptacao = hashlib.sha1(passadefinir2.encode())
    encriptado = (encriptacao.hexdigest(),)
    maindb.execute("INSERT INTO Password(Password) VALUES (?)" (encriptado,))
    conn.commit()

Вот ошибка:

Traceback (последний вызов последним): файл «sqlitetesting.py», строка 28, в maindb.execute («INSERT INTO Password (Password) VALUES (?)» (Encriptado,)) TypeError: объект 'str' не вызывается

Хорошего дня: D, Луис Дуарте.


person Luís Duarte    schedule 22.06.2017    source источник
comment
Добавьте , перед кортежем   -  person Infinity    schedule 22.06.2017
comment
"string" (stuff, )" недопустимый синтаксис Python.   -  person ForceBru    schedule 22.06.2017


Ответы (1)


Вы можете заменить, используя метод String format

password_var = 'your password'
insert_statement = 'INSERT INTO Password(Password) VALUES ({0})'.format('\'' + password_var + '\'')

затем запустите метод выполнения как:

maindb.execute(insert_statement)
person Kabard    schedule 22.06.2017