This question already has answers here:
How can I print literal curly-brace characters in a string and also use .format on it?
(20个答案)
5年前关闭。
尝试运行包含以下代码的脚本以生成文本块时:
我得到一致的错误
当我删除
(最初它驻留在一个循环中)
否则,Python将看到
从Format String Syntax documenattion:
(强调我的)。
(20个答案)
5年前关闭。
尝试运行包含以下代码的脚本以生成文本块时:
from textwrap import dedent
text = dedent("""\
yada yada '1' ('2','3',4')
('{0}', Null, '{1}',
'{
"Hello":"world",
}', '1', '{2}');""").format("yada1","yada2","yada3")
我得到一致的错误
KeyError '\n "Hello"
然后回溯指向.format()
的行。当我删除
format
时,一切正常,但是我需要它动态地输入参数。(最初它驻留在一个循环中)
最佳答案
您需要将不是占位符的{
和}
字符加倍:
text = dedent("""\
yada yada '1' ('2','3',4')
('{0}', Null, '{1}',
'{{
"Hello":"world",
}}', '1', '{2}');""").format("yada1","yada2","yada3")
否则,Python将看到
{\n "Hello":"world",\n}
占位符,其中:
之前的部分是占位符名称。从Format String Syntax documenattion:
(强调我的)。
关于python - 获取一致的 key 错误:\n,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32224197/
10-13 09:43