python 2.5的字符串格式

use*_*881 2 python python-2.5

在旧版本的python中,'str'对象没有属性'如果我尝试格式化字符串,将导致格式错误。params 由类似[u'name', '12']. 如何在 % 字符串格式中执行以下操作?

def str(params):
    ......
    if params:
       msg_str = msg_str.format(*params)
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 6

将列表转换为元组并将其作为格式参数传递:

msg_str = msg_str % tuple(params)
Run Code Online (Sandbox Code Playgroud)

例子:

>>> lst = [123, 456]
>>> 'foo %d bar %d' % tuple(lst)
'foo 123 bar 456'
Run Code Online (Sandbox Code Playgroud)

注意,它必须是一个元组,直接传递列表是行不通的:

>>> 'foo %d bar %d' % lst
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not list
Run Code Online (Sandbox Code Playgroud)