2016-12-30 48 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},),) 

貓,狗和青蛙都是浮點型,數據日期和名字是String類型。返回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的,處理任何類型的列的select語句有什麼想法?

回答