You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中出现ValueError: Invalid format specifier错误该如何解决?

解决Python ValueError: Invalid format specifier错误

错误原因:

  • 代码里的"是HTML转义的双引号,直接放到Python f-string里会导致语法混乱
  • f-string中要输出字面大括号必须用{{和}}转义,原代码里部分大括号未正确转义,同时{i}前后的引号拼接方式错误,让Python误将部分内容识别为格式说明符,触发报错

修正后的代码:

for i in range(0, 2):
    payload = f'{{"requests": [{{"indexName": "products", "params": "query=&hitsPerPage=20&maxValuesPerFacet=1000&page={i}&facets=%5B%22family.name%22%2C%22wine_type.name%22%2C%22vina.name%22%2C%22cepa.name%22%2C%22linea.name%22%2C%22procedencia.name%22%2C%22wine_harvest_year%22%2C%22price%22%2C%22score%22%5D&tagFilters=&facetFilters=%5B%22family.name%3AVinos%22%5D"}}]}}'
    print(payload)

关键修改点:

  • 把所有"替换为实际的双引号"
  • 确保所有需要作为字面量输出的大括号都用{{和}}转义(比如最外层的{{"requests": ...}}、数组内的{{"indexName": ...}})
  • 直接在page=后插入{i},无需额外引号包裹(params参数本身是字符串,{i}直接拼接即可)

更推荐的写法(用字典生成JSON,避免手动拼接的繁琐):

import json

for i in range(0, 2):
    payload_dict = {
        "requests": [
            {
                "indexName": "products",
                "params": f"query=&hitsPerPage=20&maxValuesPerFacet=1000&page={i}&facets=%5B%22family.name%22%2C%22wine_type.name%22%2C%22vina.name%22%2C%22cepa.name%22%2C%22linea.name%22%2C%22procedencia.name%22%2C%22wine_harvest_year%22%2C%22price%22%2C%22score%22%5D&tagFilters=&facetFilters=%5B%22family.name%3AVinos%22%5D"
            }
        ]
    }
    payload = json.dumps(payload_dict)
    print(payload)

这种方式无需手动转义大括号,可读性更强且不易出错。

内容的提问来源于stack exchange,提问作者John Doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:57:25