Выбор ответа Middle Чтение и запись данных обновлено
Параметры в pd.read_sql
Вопрос
Как правильно подставить дату из переменной в запрос pd.read_sql?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Через params и плейсхолдер драйвера, например %(d)s. Параметры, переданные через params, экранирует драйвер: нет SQL-инъекций и проблем с кавычками и типами. f-строка, format и конкатенация вставляют значение в текст запроса.
Варианты ответа
- f-строкой:
f"... WHERE dt >= '{d}'"с кавычками - Через
paramsи плейсхолдер драйвера, например%(d)sправильный ответ - Через
.format(d=d)с ручным экранированием кавычек - Конкатенацией строк, если
dберётся из своего кода
Разбор
Параметры, переданные через params, экранирует драйвер: нет SQL-инъекций и проблем с кавычками и типами. f-строка, format и конкатенация вставляют значение в текст запроса. Даже если сегодня значение «своё», завтра его начнут брать из ввода пользователя.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Чтение и запись данных»
- Как прочитать большой файл в pandas
- Файл больше памяти в pandas
- Агрегат по кускам через chunksize
- Вложенный JSON заказов в таблицу
- Разбор выгрузки из Excel: sep, decimal, dtype
- Запятая в дробях при чтении CSV
- CSV для русского Excel
- read_csv для русской выгрузки