【发布时间】:2021-09-17 14:34:26
【问题描述】:
我需要将列表转换为元组我将这个元组传递给 sql in 子句。当列表中只有一个元素时,元组正在检索额外的元素,我们如何避免这种情况。我将列表引用到下面的元组,但无法找到避免额外元素的答案
Convert list to tuple in Python
>>> taskid="10030"
>>> l = taskid.split(",")
>>> l
['10030']
>>> t = tuple(l)
>>> t
('10030',)
>>> query = f"""select * from table1 where task_id in {tuple(t)} ) query_temp"""
请告知合适的解决方案
【问题讨论】:
-
接收一个额外的元素是什么意思?您正在拆分一个字符串并且分隔符存在,因此您会得到一个包含两个元素的列表。元组不会神奇地消除实际结果。
-
不要使用插值来构造您的查询。使用您的 SQL 库提供的任何方法创建参数化查询,例如
cursor.execute("select * from table1 where task_id in %s", (t,))。
标签: python python-3.x