Я пытаюсь запросить мою таблицу PostgreSQL с помощью psycopg2. Мне нужно использовать 3 переменные в запросе, потому что они будут меняться от исполнения к исполнению. Вот код, который я использовал:
def select_from_table(values, dbname, host, user, password, month,cluster,date):
try:
tup = open_connection_to_db(dbname, host, user, password)
sql_command = """SELECT listing_id, price_x FROM test WHERE month = %s AND cluster = %s AND date = %s;"""
tup[1].execute(sql_command, (month,cluster,date,))
tup[0].commit()
print("Selecting rows from mobile table using cursor.fetchall")
df = pd.read_sql(sql_command, tup[0])
return df
except (Exception, psycopg2.Error) as error:
print("Error while fetching data from PostgreSQL", error)
finally:
tup[0].close()
tup[1].close()
print("PostgreSQL connection is closed")
Вы можете предположить, что функция open_connection_to_db работает (я использовал ее до сих пор) и возвращает 2 переменные: tup [0] = connection tup [1] = курсор
Я получаю эту ошибку:
Error while fetching data from PostgreSQL Execution failed on sql 'SELECT listing_id, price_x FROM test WHERE month = %s AND cluster = %s AND date = %s': syntax error at or near "%"
LINE 1: ...ELECT listing_id, price_x FROM test WHERE month = %s AND clu...
^