SqlAlchemy选择表达式数据类型
使用SqlAlchemy,我使用select public_工厂构建我的查询,如下所示:SqlAlchemy选择表达式数据类型,sqlalchemy,Sqlalchemy,使用SqlAlchemy,我使用select public_工厂构建我的查询,如下所示: 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
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},),)
Cat、Dog和Frog是Float类型,数据是date,名称是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语句,您有什么想法吗?我最终使用手动生成SQL,并以以下内容为基础: