代码之家  ›  专栏  ›  技术社区  ›  JD2775

移除整数列表周围的括号

  •  0
  • JD2775  · 技术社区  · 7 年前

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

    def choose_tables(self):
    ...
    ...
    return final_table_set
    

    它返回如下所示的整数列表:

    [11,12,13,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) 
    

    它出错是因为它的读取方式如下:

    'SELECT * FROM TABLE_A WHERE TABLE_ID IN ([11, 12, 14, 15])'
    

    有没有办法去掉数字周围的括号?我假设在返回最终的表格集之前,我需要在末尾的choose_tables()函数中执行这个操作。这些是整数,而不是SQL语句中使用的字符串,因此我不认为','联接可以工作。

    2 回复  |  直到 7 年前
        1
  •  4
  •   bphi    7 年前

    security concerns

    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)'
    
        2
  •  1
  •   DMR    7 年前

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