2016-12-30 2 views
0

С 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, который обрабатывает любой тип столбца?

ответ

Смежные вопросы