Я пишу SQL-запрос, в котором я хочу передать условие WHERE с параметрами в pandas.read_sql_query.Это прекрасно работает для значения, но я сталкиваюсь с проблемами с переменной.Мой обходной путь - конкатенация строки, которую я передаю пандам, но мне не нравится видеть мой код так.Я уже выяснил, что имя столбца таблицы написано неправильно.Например, «colname» вместо «colname».
Я написал sql в виде строки:
command=("SELECT * FROM review r "
"WHERE 1=1 "
"AND "+selected_var+"= "+selected_val
)
И затем я передал его пандам
self.reviews = pd.read_sql_query(command, con = self.cnxn)
Но яЯ хотел бы включить его без обходного пути.
import pandas as pd
import mysql.connector
self.reviews = pd.read_sql_query("""
SELECT *
FROM review r
WHERE 1=1
AND %(sel_var)s = %(sel_val)s;
""", con = self.cnxn, params = {'sel_var': selected_var,
'sel_val': selected_val
})
Я ожидаю, что запрос покажет результаты без записи всего в виде командной строки.