在Python的For循环中添加SQL查询

时间:2019-02-18 06:07:44

标签: python mysql sql postgresql

有没有一种方法可以在表名称和数据库名称可变的python的For循环中添加SQL查询? 像这样:

database = []
tables= []
column = []

for x in database: 
    for y in tables:
        for z in column:
            SQL = "select * from x.y where z is NOT NULL;"
            cursor.execute(sql)`enter code here`

2 个答案:

答案 0 :(得分:0)

只需使用字符串对象的.format()方法来获取sql查询字符串:

SQL = "select * from {}.{} where {} is NOT NULL;".format(x, y, z)

或附加这样的值:

SQL = "select * from " + str(x) + "." + str(y) + " where " + str(z) + " is NOT NULL;"

我推荐第一个解决方案。

答案 1 :(得分:0)

只需使用字符串格式。在您的示例中:

database = []
tables= []
column = []

for x in database: 
    for y in tables:
        for z in column:
            SQL = "select * from {x}.{y} where {z} is NOT NULL;".format(x=x, y=y, z=z)
            cursor.execute(sql)

这是python字符串格式化的一个示例,但是您可以使用字符串连接,% formattingf-strings