python - 完成for循环后从列表中格式化Python字符串
问题描述
我正在从几个变量列表和字典构建一个 sql 查询。目前我在 for 循环中格式化每个字符串,如下所示:
for plat in PLATFORM_LIST:
for gk, gv in GENDER_MAP.items():
for ak, av in AGE_MAP.items():
query += line_a.format(plat=plat, gv=gv, av=av, ak=ak)
query += line_b.format(plat=plat, gv=gv, av=av, ak=ak)
query += line_c.format(plat=plat, gv=gv, av=av, ak=ak)
其中 a、b 和 c 行是需要使用平台、性别和年龄变量格式化的字符串。
我不想在 for 循环中格式化这些行,而是构建参数化查询,然后再格式化。我怎样才能做到这一点?
解决方案
将格式占位符更改为{}
变量名而不是变量名。然后将参数连接到格式列表(确保它们的顺序正确)。
params = []
query_fmt = ""
for plat in PLATFORM_LIST:
for gk, gv in GENDER_MAP.items():
for ak, av in AGE_MAP.items():
query_fmt += line_a + line_b + line_c
params += [plat, gv, av, ak] * 3
query += query_fmt.format(params)
推荐阅读
- android - 从火力基地检索坐标并将其绘制在地图上
- c# - 从类库中的公共 api 返回数据列表的最佳做法是什么?
- java - 如何将此水平 ViewPager 变压器修改为垂直变压器?
- html - 将静态 HTML 网站导入 Django CMS
- python-3.x - JupyterLab - 卡在“内核重新连接” - Python 3
- sql - Tableau 月销售额总和与 Las 帐户客户项目当月销售额
- azure - Azure 搜索:为 .vtt 运行索引器
- shell - Unix shell 脚本日期格式
- python - Tkinter 窗口在 anaconda 下打开为黑色
- swift - 为什么从 Float 铸造的 CGFloat 不表现出 CGFloat 行为?