【发布时间】:2017-01-02 07:44:10
【问题描述】:
如何从字符串中检索预期的格式键名?
假设我有:
"This string expects {expected}"
如果我输入了错误的键名,python 会抛出一个显示预期名称的 KeyError。
"This string expects {expected}".format(whoops="wrong key")
KeyError: 'expected'
有没有办法在没有正则表达式或(呃)故意抛出 KeyError 的情况下对此进行测试?我查看了字符串文档,但没有发现任何问题。
编辑 1:
我不想抑制错误,也不想默默地用无/空字符串填充它。我想使用预期的键名来正确格式化字符串。
我可以通过将字符串映射到字典中的键名来在上游对其进行重做,但如果事后有办法找到它,我希望避免这种情况。
Regex 会是一个很好的解决方案,但在这一点上,我只是好奇。
【问题讨论】:
-
@CoDEmanX 询问有关抑制错误的问题。我在问如何找到键名。
-
所以你不知道字符串是什么样子的?在您的示例中,预期的名称就在您的眼前,所以想知道您究竟想在这里解决什么问题。
-
@CoDEmanX 我还应该如何举例说明一个我事先不知道其内容的变量?
-
是的,使用 string.Formatter,stackoverflow.com/a/30418220/2141635
-
Ohad 的解决方案绝对是正确的选择。尽管如此,我还是在这里发布了一个代码 sn-p,因为提出这个非常有趣:stackoverflow.com/a/39153155/2044940
标签: python python-3.x string-formatting