import pandas as pd
q = """
select *
from tbl
where metric = %(my_metric)s
;
"""
params = {'my_metric':'sales'}
pd.read_sql(q, mysql_conn, params=params)
Run Code Online (Sandbox Code Playgroud)
我使用 pandas read_sql 函数安全地将参数传递给我的查询字符串。我想返回带有替换参数的最终查询字符串以及结果。例如,返回字符串:
select *
from tbl
where metric = 'sales'
;
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
好的,在这种情况下试试这个:
import pandas as pd
q = """
select *
from tbl
where metric = %s
;
"""
params = {'my_metric': 'sales'}
df = pd.read_sql(q, mysql_conn, params=[params['my_metric']])
query_string = q % params['my_metric']
Run Code Online (Sandbox Code Playgroud)