我有一个像这样的字符串:
my_string = '{general_setting} ... {specific_setting}'
整个程序的general_setting相同(即数据库密码),而整个程序的specific_setting可能有所不同。有没有一种方法可以将一个字符串格式化两次,首先插入general_setting,然后准备一个预先准备好的字符串,以便稍后插入specific_setting?
我确定必须先问过这个问题,但是我能找到的只是关于如何多次插入相同VALUE的问题,而不是关于如何在不同时间插入不同的值的问题。
答案 0 :(得分:10)
根据花括号的数量,您可以进行任何级别的格式化
>>> template = '{general_setting} ... {{specific_setting}}'.format(general_setting='general')
>>> my_string = template.format(specific_setting='specific')
>>> print (my_string)
general ... specific
答案 1 :(得分:6)
或者,您可以使用python format string unused named arguments中提出的解决方案:
class SafeDict(dict):
def __missing__(self, key):
return '{' + key + '}'
然后:
>>> '{bond}, {james} {bond}'.format_map(SafeDict(bond='bond'))
返回:
'bond, {james} bond'
答案 2 :(得分:0)
@ Sunitha答案中的一些附加内容,第一次是{}
,第二次是{{}}
,第三次不是{{{}}}
,而是{{1 }}。
四个花括号,因为每次格式化时,每个位置的花括号都会减少。