Я уже искал документацию (https://duckdb.org/docs/api/python/overview.html), но не нашел ничего полезного. Метод Duckdb.execute(query, options), похоже, работает только с базами данных с реальным sql-соединением, а не с фреймами данных.
Есть еще один вопрос по stackoverflow (Синтаксис для Duckdb > Python SQL с параметром\переменной) по этой теме, но ответ работает только на реальных sql-соединениях, а версия с f-строками кажется мне небезопасной.
Здесь это небольшой пример кода, показывающий, что я имею в виду:
Код: Выделить всё
import duckdb
import pandas as pd
df_data = pd.DataFrame({'id': [1, 2, 3, 4], 'student': ['student_a', 'student_a', 'student_b', 'student_c']})
user_input = 3 # fetch some user_input here
# How to prevent sql-injection, if its even possible in this case?
result = duckdb.query("SELECT * FROM df_data WHERE id={}".format(user_input))
РЕДАКТИРОВАНИЕ: исправлена синтаксическая ошибка в коде
Подробнее здесь: https://stackoverflow.com/questions/778 ... dataframes
Мобильная версия