我试图通过执行 12 次相同的请求来循环 API 请求:
这是请求的有效载荷部分,这是有效的:
payload="{\n\t\"filter\": {\n \"year\":2020,\n \"month\":10,\n\t\t\"customer_id\":52\n\t},\n \"sort\":{\"_id.date\":1}\n}"
我的目标是通过在月后添加循环变量“mes”来格式化有效负载字符串。据我所知,我尝试使用:
for mes in range(0,12):
payload="{\n\t\"filter\": {\n \"year\":2020,\n \"month\":
{mes},\n\t\t\"customer_id\":52\n\t},\n \"sort\":{\"_id.date\":1}\n}".format(mes=mes)
但是不起作用,我如何格式化它以便我可以遍历有效负载? 有什么解决办法?
谢谢
答案 0 :(得分:1)
当您使用 .format()
时,您不能在 str 中包含 {}
,因为它们将被识别为将 str 放入 .format()
的位置。在不打算使用格式化 str 的地方,您需要将它们中的每一个都加倍:
for mes in range(0,12):
payload="{{\n\t\"filter\": {{\n \"year\":2020,\n \"month\"{mes},\n\t\t\"customer_id\":52\n\t}},\n \"sort\":{{\"_id.date\":1}}\n}}".format(mes=mes)
简而言之,'{a} {something else}'.format(a=1)
不起作用,但 '{a} {{something else}}'.format(a=1)
起作用并被打印为 '1 {something else}'