我试图在python中构建一个函数,根据用户传递的参数返回输出。你知道吗
基本功能如下:
def report():
db_conn
dwh_cursor = conn.cursor() # set DB Cursor
## Query
dwh_cursor.execute(sql.SQL("""select name,class,team,position from students"""))
上面的函数在执行时可以正常工作。这里我要修改的是,当我只传递一个参数值时,该列应该在函数的输出处返回。例如,在下面的函数中,我只传递两个参数,即name和class,输出中只需要这两个值,如下所示:
def report(name,class,team,position):
db_conn
dwh_cursor = conn.cursor() # set DB Cursor
## Query
dwh_cursor.execute(sql.SQL("""select name,class,team,position from students"""))
report("Scott","High_School","","")
Expected query to be executed:
## Query
dwh_cursor.execute(sql.SQL("""select (%s),(%s) from students"""), (name,class))
有谁能指导我如何得到这个指定的输出吗?你知道吗
您可能会发现传入要检索的列名列表更容易。你知道吗
健康警告
基于用户输入动态生成sql是有风险的(即,如果未知/不受信任的用户可以设置放入查询的文本,那么他们可能会极大地改变您正在运行的查询)
如果这是要支持的更大应用程序的一部分,则可以使用ORM工具(例如sqlalchemy)为您处理与数据库的接口
相关问题 更多 >
编程相关推荐