python:格式字符串中变量名称中的点
问题内容:
假设我有一个字典,在字段名中带有点,例如{'person.name': 'Joe'}
。如果我想在中使用str.format
它,可以吗?
我的第一个直觉是
'Name: {person.name}'.format(**{'person.name': 'Joe'})
但这只有在我的字典形状像
{'person':{'name':Joe}}
相关的手动文档部分并未提及转义点。
(旁注:我认为总体上
def func(**kw): print(kw)
func(**{'a.b': 'Joe'})
会导致错误,但是**
-expanded函数调用似乎有效,即使它们 不是 有效的标识符也是如此!它 确实会 在非字符串上出错。o_O)
问题答案:
'Name: {0[person.name]}'.format({'person.name': 'Joe'})