在 Python 中使用三引号时出现字符串格式问题

Problem with string formatting when using triple quotes in Python

为此,

name='the name'
address='the address'

s = '''{
  "name": "{0}",
  "address": "{1}"
}
'''
print(s.format(name, address))

我预计它会打印以下内容。

{
  "name": "the name",
  "address": "the address"
}

但是我得到了以下错误。为什么以及解决方案是什么?

KeyError                                  Traceback (most recent call last)
<ipython-input-8-eb4c74e2dd68> in <module>
      8 '''
      9 
---> 10 print(s.format(name, address))

KeyError: '\n  "name"'

需要对外部 {} 进行转义以进行字符串格式化,您可以通过将 { } 加倍来实现。

s = '''{{
  "name": "{0}",
  "address": "{1}"
}}
'''