С SQLAlchemy Я использую выберите public_factory строить свои запросы, как, например:SQLAlchemy выбора выражений типа данных
from sqlalchemy import select
table_cols = ['cat', 'dog', 'frog', 'date', 'name']
qry = select(table_cols)
conn = db.get_engine()
sql = "{}".format(
qry.compile(
conn, compile_kwargs={"literal_binds": True},),)
кошки, собаки и лягушки являются тип Float, данные дата и имя типа Строка. Возвращенное QRY выражение
SELECT "cat", "dog", "frog", date, name
Обратите внимание, что дата и имя в примечании в кавычках, я могу понять, почему дата не возвращается в виде строки, но не знает, почему имя не является.
В противном случае я мог бы использовать некоторые болячки хака, как это, но не хотелось бы:
def select_specific(table_name, column_list):
sql = list()
sql.append("SELECT ")
for i, item in enumerate(column_list):
if i == len(column_list)-1:
sql.append("'{0}' ".format(item))
else:
sql.append("'{0}', ".format(item))
sql.append("FROM {0}".format(table_name))
sql.append(";")
return "".join(sql)
Любые мысли о том, как я могу генерировать оператор выбора с помощью SQLAlchemy, который обрабатывает любой тип столбца?