Ver*_*int 2 python string-formatting python-3.x
如何从字符串中检索预期的格式键名称?
可以说我有:
"This string expects {expected}"
Run Code Online (Sandbox Code Playgroud)
如果我输入错误的键名,python 会抛出一个 KeyError,显示预期的名称。
"This string expects {expected}".format(whoops="wrong key")
KeyError: 'expected'
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在没有正则表达式或(呃)故意抛出 KeyError 的情况下对此进行测试?我查看了字符串文档,但什么也没引起我的注意。
编辑1:
我不想抑制错误,也不想默默地用 None/空字符串填充它。我想使用预期的键名来正确格式化字符串。
我可以通过将字符串映射到字典中的键名来在上游重新处理它,但希望如果有办法在事后找到它来避免这种情况。
正则表达式将是一个很好的解决方案,但此时我只是好奇。
Formatter.parse你可以这样使用:
>>> s="{a} {b} {c}"
>>> list(string.Formatter.parse("",s))
[('', 'a', '', None), (' ', 'b', '', None), (' ', 'c', '', None)]
>>> [t[1] for t in string.Formatter.parse("",s)]
['a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1469 次 |
| 最近记录: |