Python:使用变量格式化多行字符串

Nat*_*ate 4 python string formatting

我正在编写一个Python脚本,其中包含一个带有大型多行字符串的部分,该字符串也需要扩展变量.我习惯于在Python 2.6或Python 3中以下列方式执行此操作:

message = """
          Hello, {foo}
          Sincerely, {bar}
          """
print (message.format(foo = "John", bar = "Doe"))
Run Code Online (Sandbox Code Playgroud)

但是,正在运行的服务器正在运行旧版本的Python(2.3.4),它不支持string.format.在旧的Python版本中,有什么方法可以做到这一点?你能用%运算符吗?我尝试过这个,但它似乎没有用:

message = """
          Hello, %(foo)
          Sincerely, %(bar)
          """ % {'foo': 'John', 'bar': "Doe"}
Run Code Online (Sandbox Code Playgroud)

我可以在不使用多行字符串的情况下完成它,但是我需要格式化的消息非常庞大,并且有很多变量.在Python 2.3.4中有一种简单的方法吗?(仍然是Python初学者,如果这是一个愚蠢的问题,那就很抱歉.)

Eli*_*ght 13

你想说

message = """
          Hello, %(foo)s
          Sincerely, %(bar)s
          """ % {'foo': 'John', 'bar': "Doe"}
Run Code Online (Sandbox Code Playgroud)

注意s最后,这是一般格式"%(keyname)s" % {"keyname": "value"}