在Python3.4中,您可以执行以下操作:
class MyDict(dict):
def __missing__(self, key):
return "{%s}" % key
然后像是:
d = MyDict()
d['first_name'] = 'Richard'
print('I am {first_name} {last_name}'.format(**d))
按预期打印:
I am Richard {last_name}
但是这个代码片段在Python3.6+中不起作用,在试图从字典中获取
KeyError
值时返回last_name
,是否有任何解决方法可以让字符串格式以Python3.4中的相同方式工作?谢谢!
最佳答案
我用format_map
而不是format
解决了这个问题,下面是我的示例:
print('I am {first_name} {last_name}'.format_map(d))
印刷的
I am Richard {last_name}
如预期。