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)