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

Python三重引号中使用f-strings格式化字符串报错如何解决?

错误原因

你遇到的两类报错本质都是JSON结构的大括号没有正确转义导致的:

  • 使用f-string时,你没有将JSON本身需要保留的外层大括号转义,Python将其识别为f-string的插值占位符,触发ValueError: Invalid format specifier
  • 使用format()方法时同样没有转义外层大括号,Python将{\n "name"识别为占位符的key,找不到对应参数触发KeyError
最优解决方案

不需要手动拼接JSON字符串,直接使用requests内置的json参数传字典即可,框架会自动完成序列化、转义和请求头补全:

import requests

org_names = ['name 1', 'name 2']

headers = {
    'Authorization': 'xxxxx'
}

for name in org_names:
    payload = {
        "name": name,
        "groupId": "xxxx"
    }
    response = requests.post('https://xxxx', json=payload, headers=headers)
    data = response.json()
手动拼接JSON的修正写法

如果确实需要手动拼接字符串,可参考以下两种正确写法:

f-string写法

for name in org_names:
    # 需要保留的JSON大括号用双大括号转义,需要插值的变量用单大括号
    values = f"""
      {{
        "name": "{name}",
        "groupId": "xxxx"
      }}
    """

format()写法

for name in org_names:
    values = """
      {{
        "name": "{}",
        "groupId": "xxxx"
      }}
    """.format(name)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 09:36:07