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

Python 3.11脚本出现'Unterminated string literal error'的原因

Python语法错误:未终止字符串字面量的原因及修复

错误原因

你的代码存在两个问题:

  1. 函数调用错误:Python中没有string()函数,字符串类型转换需使用str();
  2. 引号闭合冲突:你用单引号'包裹f-string,而replace('"', '""')中的第一个单引号会被Python误判为f-string的结束标记,导致后续代码成为未闭合的字符串片段,触发SyntaxError: unterminated string literal。

修复方案

方案1:转义f-string内部的单引号

将replace参数中的单引号用反斜杠\转义,避免与外层f-string的单引号冲突,同时修正函数名:

values, value = [], "foo"
values.append(f"'{str(value).replace(\'", "\'\'")}'")

方案2:改用双引号包裹f-string

用双引号定义f-string,内部单引号无需转义,仅需转义replace参数中的双引号(保持原逻辑的单引号包裹结果):

values, value = [], "foo"
values.append(f"'{str(value).replace(\"'\", \"''\")}'")

方案3:使用三引号定义f-string

三引号('''或""")可直接包含单/双引号,无需转义,写法更简洁:

values, value = [], "foo"
values.append(f''' '{str(value).replace('"', '""')}' ''')

内容的提问来源于stack exchange,提问作者Geert Van Der Weide

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 07:57:03