Python for 循环完成后列表中的字符串格式化
Python string formatting from list after completed for loop
我正在根据多个变量列表和字典构建 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)
我正在根据多个变量列表和字典构建 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)