如何动态检查具有命名占位符的格式字符串,如 "{foo} {bar} {baz}"



给定一个使用命名占位符进行格式设置的字符串,是否可以动态检查名称是什么?

>>> var = '''{foo} {bar} {baz}'''
# How to do this?
>>> for k in var.inspect_named_placeholders():
>>>     print(k)
foo
bar
baz

是的,您可以使用内置解析器:

>>> var = '''{foo} {bar} {baz}'''
>>> import string
>>> formatter = string.Formatter()
>>> formatter.parse(var)
<formatteriterator object at 0x109174750>
>>> list(formatter.parse(var))
[('', 'foo', '', None), (' ', 'bar', '', None), (' ', 'baz', '', None)]

最新更新