小编典典

部分字符串格式

python

是否可以使用类似于字符串模板safe_substitute()功能的高级字符串格式化方法进行部分字符串格式化?

例如:

s = '{foo} {bar}'
s.format(foo='FOO') #Problem: raises KeyError 'bar'

阅读 225

收藏
2020-12-20

共1个答案

小编典典

您可以通过覆盖映射将其欺骗为部分格式:

import string

class FormatDict(dict):
    def __missing__(self, key):
        return "{" + key + "}"

s = '{foo} {bar}'
formatter = string.Formatter()
mapping = FormatDict(foo='FOO')
print(formatter.vformat(s, (), mapping))

印刷

FOO {bar}

当然,此基本实现仅在基本情况下正确运行。

2020-12-20