Запрос с переменной
Я хочу выполнить запрос с переменной
Я пытался сделать это, но не получается
def requeteDB(sql_request):
with connection.cursor() as cursor:
cursor.execute(sql_request)
row = cursor.fetchall()
return row
def queryWithVar():
var = 'something with spaces'
return('''
Select col1
From table1
Where col2 = %s
''', [var])
queryWithVar()
('\n Select col1\n From table1\n Where col2 = %s\n ', ['something'])
requeteDB(queryWithVar())
TypeError: аргумент 1 должен быть строкой или объектом юникода: вместо него получен кортеж
>
Проблема в том, что ваша функция возвращает кортеж, поэтому вам нужно распаковать его при передаче результата в метод execute
, просто используйте синтаксис *
:
def requeteDB(sql_request):
with connection.cursor() as cursor:
cursor.execute(*queryWithVar())
row = cursor.fetchall()
return row