【发布时间】:2020-04-15 13:40:57
【问题描述】:
我需要使用带有变量表名(来自外部源)的 SQLAlchemy 执行 SQL 语句。 我尝试了几种选择,但没有一个成功。
尝试1:使用text():
def empty_table(table_name,testf):
with db.connect() as conn:
s = text("SELECT * FROM $table_name")
rp = conn.execute(s)
收到:
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.SyntaxError) 语法 “$” LINE 1 或附近的错误:SELECT * FROM $table_name
尝试 2:使用select():
with db.connect() as conn:
s = select([table_name])
rp = conn.execute(s)
接收:
sqlalchemy.exc.ArgumentError:文本列表达式 'my_test_table' 应显式声明为 text('my_test_table'),或使用 column('my_test_table') 获取更多信息 特异性
我在How to do a sqlalchemy query using a string variable as table name? 中发现可以使用 eval(my_variable) 解决问题,但没有详细说明。
【问题讨论】:
标签: python sqlalchemy