为了账号安全,请及时绑定邮箱和手机立即绑定

删除整数列表周围的括号

删除整数列表周围的括号

偶然的你 2021-11-02 10:24:08
我有一个返回以下内容的函数:def choose_tables(self):......return final_table_set它返回一个整数列表,如下所示:[11,12,13,14,15]我遇到的问题是我试图在另一个执行 SQL 并在 DataFrame 中返回它的函数中使用该返回值: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) 它出错了,因为它是这样读的:'SELECT * FROM TABLE_A WHERE TABLE_ID IN ([11, 12, 14, 15])'有没有办法摆脱数字周围的括号?我假设在返回 final_table_set 之前,我需要在最后某处的choose_tables() 函数中执行此操作?这些是整数,而不是在 SQL 语句中使用的字符串,所以我不认为 ','.join 会起作用
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

从变量构造 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)'


查看完整回答
反对 回复 2021-11-02
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

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

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


查看完整回答
反对 回复 2021-11-02
  • 2 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信