我的python函数使用f字符串为硬连线的多行sql语句中的sql语句指定某些过滤器。
def get_pilot_flights_for_month(month):
sql = f"""
SELECT
pilotname,
count(*) as flightcount,
sum(duration) as flightsumduration
FROM flights
WHERE eventmonth = '{month}'
AND plane_class like '%glide%'
GROUP BY pilotname
"""
pilot_flights_df = sql_exec(sql)
return pilot_flights_df
然而,随着sql语句变长(最多50多行),可读性和代码结构变得难看。
备选方案:
将sql查询放入.sql文件。然后将文件内容加载到python中,并使用str.replace指定过滤器。我相信 .replace
不是很优雅-对于每个查询,您必须选择一个在查询中其他任何地方都不会出现的安全替换词。
暂无答案!
目前还没有任何答案,快来回答吧!