将变量列表加载到 sqlalchemy 文本查询中

时间:2021-05-05 10:32:42

标签: python sql sqlalchemy

我有一个手动执行的现有 sql 查询:

define team = "'user1', 'user2', 'user3'"
select * from table
where field in (&team)

我希望从 python 代码中执行该脚本。团队信息应从文本文件中加载(以便可以在不更改代码的情况下维护列表)。 sql 查询也在一个单独的文件中。

团队.txt:

'user1', 'user2', 'user3'

sql 文件:

select * from table
where field in :team

Python 提取:

team = path.Path('team.txt').read_text()
sqlfile = path.Path('sql_script.sql').read_text()
str_sql = sqla.text(sqlfile)
results = conn.execute(str_sql, {"team":team}).fetchall()
print (results)

但不幸的是,代码返回 [(0,)]

当我将团队文件更改为只有一个用户条目时,例如user3,则返回结果<>0。所以其余的代码工作......

使用元组不起作用(NotSupportedError: (cx_Oracle.NotSupportedError) 不支持类型元组的 Python 值。)

我确信我的数据格式有问题,但我不知道如何解决这个问题。任何帮助表示赞赏,非常感谢!

0 个答案:

没有答案