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

Python中使用f-string格式化字符串出现invalid format specifier报错如何解决?

Python f-string生成JSON时触发invalid format specifier报错的解决方法

报错根因

触发报错的核心原因是:f-string语法规定,单个{、}符号会被识别为Python表达式的包裹边界,你直接用单个大括号编写JSON结构,和f-string语法产生了冲突。

正确写法

方法1:转义字面量大括号

如果要在f-string中输出字面量大括号,用两个连续的大括号做转义即可,修改后的代码如下:

values = f'''{{
          "sourceId": "{merchant['siteId']}",
          "programId": "{merchant['id']}"
        }}'''

方法2(更推荐):使用json模块序列化

你最终要生成的是JSON格式字符串,直接用Python内置的json模块序列化字典更稳妥,不需要手动处理转义、引号冲突问题,代码如下:

import json

# indent参数用来控制缩进空格数,不需要格式化输出可直接移除
values = json.dumps({
    "sourceId": merchant['siteId'],
    "programId": merchant['id']
}, indent=12)

注意事项

  • f-string中输出字面量{用{{替代,输出字面量}用}}替代
  • 生成JSON字符串优先使用json模块处理,避免手动拼接字符串引发的格式错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:06:04