pandas read_sql 返回带有传递参数的查询字符串

nat*_*002 6 python sql pandas

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)

有没有办法做到这一点?

idu*_*s11 2

好的,在这种情况下试试这个:

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)