一尘不染

如何转义格式字符串?

python

是否可以使用Python的str.format(key=value)语法仅替换某些键。

考虑以下示例:

my_string = 'Hello {name}, my name is {my_name}!'

my_string = my_string.format(name='minerz029')

哪个返回

KeyError: 'my_name'

有没有办法做到这一点?


阅读 228

收藏
2021-01-20

共1个答案

一尘不染

我使用了一个更简单的解决方法:

my_string = 'Hello {name}, my name is {my_name}!'

to_replace = {
    "search_for" : "replace_with",
    "name" : "minerz029",
}

for search_str in to_replace:
    my_string = my_string.replace('{' + search_str + '}', to_replace[search_str])

print(my_string)

可以使用to_replacedict中的更多键轻松扩展此功能,即使搜索字符串不存在也不会抱怨。可能会进行改进以提供更多.format()的功能,但这对我来说已经足够了。

2021-01-20