如何在python函数中包含大型sql查询?

jdg4fx2g  于 2021-08-09  发布在  Java
关注(0)|答案(0)|浏览(272)

我的python函数使用f字符串为硬连线的多行sql语句中的sql语句指定某些过滤器。

  1. def get_pilot_flights_for_month(month):
  2. sql = f"""
  3. SELECT
  4. pilotname,
  5. count(*) as flightcount,
  6. sum(duration) as flightsumduration
  7. FROM flights
  8. WHERE eventmonth = '{month}'
  9. AND plane_class like '%glide%'
  10. GROUP BY pilotname
  11. """
  12. pilot_flights_df = sql_exec(sql)
  13. return pilot_flights_df

然而,随着sql语句变长(最多50多行),可读性和代码结构变得难看。

备选方案:

将sql查询放入.sql文件。然后将文件内容加载到python中,并使用str.replace指定过滤器。我相信 .replace 不是很优雅-对于每个查询,您必须选择一个在查询中其他任何地方都不会出现的安全替换词。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题