使用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")