Python 删除整数列表周围的括号

Python 删除整数列表周围的括号,python,list,Python,List,我有一个返回以下内容的函数: def choose_tables(self): ... ... return final_table_set 返回如下所示的整数列表: [11,12,13,14,15] 'SELECT * FROM TABLE_A WHERE TABLE_ID IN ([11, 12, 14, 15])' 我遇到的问题是,我试图在另一个执行SQL并在数据帧中返回它的函数中使用该返回值: def execute_sql(self): s = self.connecti

我有一个返回以下内容的函数:

def choose_tables(self):
...
...
return final_table_set
返回如下所示的整数列表:

[11,12,13,14,15]
'SELECT * FROM TABLE_A WHERE TABLE_ID IN ([11, 12, 14, 15])'
我遇到的问题是,我试图在另一个执行SQL并在数据帧中返回它的函数中使用该返回值:

def execute_sql(self):
    s = self.connection()
    data = self.choose_tables()
    data2 = "SELECT * FROM TABLE_A WHERE TABLE_ID IN ({})".format(data)
    df = pd.read_sql(data2, s) 
它会出错,因为它的读取方式如下:

[11,12,13,14,15]
'SELECT * FROM TABLE_A WHERE TABLE_ID IN ([11, 12, 14, 15])'
有没有办法去掉数字周围的括号?我假设在返回最终的_table_集之前,我需要在末尾的某个地方的choose_tables()函数中执行此操作?这些是整数,而不是SQL语句中使用的字符串,因此我不认为“,”。join将起作用。

从变量构造SQL字符串与此相关,但除此之外-获得您要查找的结果的最简单方法是:

data = [11,12,13,14,15]
sql = "SELECT * FROM TABLE_A WHERE TABLE_ID IN ({})".format(",".join(str(d) for d in data))

>>> 'SELECT * FROM TABLE_A WHERE TABLE_ID IN (11,12,13,14,15)'
从变量构造SQL字符串有多种方法,但除此之外,获得所需结果的最简单方法是:

data = [11,12,13,14,15]
sql = "SELECT * FROM TABLE_A WHERE TABLE_ID IN ({})".format(",".join(str(d) for d in data))

>>> 'SELECT * FROM TABLE_A WHERE TABLE_ID IN (11,12,13,14,15)'

使用map将列表中的每个元素转换为字符串,然后按照问题中的提示使用join:

data2 = "SELECT * FROM TABLE_A WHERE TABLE_ID IN ({})".format(','.join(map(str, data)))

使用map将列表中的每个元素转换为字符串,然后按照问题中的提示使用join:

data2 = "SELECT * FROM TABLE_A WHERE TABLE_ID IN ({})".format(','.join(map(str, data)))

尝试
join
并查看它是否有效。我的意思是,如果您想将它们视为“,”的字符串。join,只需将它们映射到字符串即可。“.format(”,“.join(map(str,data)))能满足您的要求吗?试试
join
,看看它是否有效。我的意思是,如果您想将它们视为“,”的字符串。join,只需将它们映射到字符串即可。“.format(”,“.join(map(str,data)))能满足您的要求吗?宾果,太好了。我不确定将它们转换为字符串是否会对SQL运行产生任何负面影响,但它执行得很好,并按预期将结果返回到数据帧。不关心这个特定程序的安全性,但也感谢您指出这一点!宾果,太好了。我不确定将它们转换为字符串是否会对SQL运行产生任何负面影响,但它执行得很好,并按预期将结果返回到数据帧。不关心这个特定程序的安全性,但也感谢您指出这一点!