使用python从.sql文件运行SQL查询

问题描述:

我想使用python从.sql文件执行一个SQL查询。该查询足够大,这就是为什么我把它放在一个文件中(比如说run_query.sql)。 我能读取查询并执行它,但如果我想更改基于我的python参数的查询有没有更好的方式可以动态地编辑sql文件? 例如,我想编辑SQL文件,以便在它的内容会产生下面的查询:使用python从.sql文件运行SQL查询

SELECT name, age FROM biodata WHERE name IN ('SAM','JOY','JHON') AND palce='BLACKTOWN' 

所以我希望有一个Python函数将参数如下图所示:基于

def my_func(['SAM','JOY','JHON'], 'BLACKTOWN'): 
    #do stuffs so that the sql query 
    #in the file will modify 
    # then execute the query 

上述参数通过查询将填充,然后我可以执行完整的查询。

注意:实际上查询很大,我必须在很多地方改变它,所以普通的字符串操作很混乱。所以还有其他的选择。

谢谢:)

试试这个

定义:cursor.execute(个体经营,查询,ARGS =无)

query - string,que ry在服务器上执行

args - 可选序列或映射,用于查询的参数。

namelist =['SAM','JOY','JHON'] 
palce ='BLACKTOWN' 
query= 'SELECT name, age FROM biodata WHERE name IN (%s) AND palce=%s' 
names= ', '.join(names for unused in namelist) 
cursor.execute(query,names, palce) 

你可以做的是保存的查询使用占位符,并与您的变量替换它们。 例如,您将存储:

SELECT name, age FROM biodata WHERE name IN ('name1','name2','name3') AND palce='place1'

而在蟒蛇,

query.replace('name1', "SAM")