我想格式化一个字符串并且能够使用点运算符,这样我就可以构造包含例如{user.name}
,{product.price}
的模板字符串。
我试过这个:
'Hello {user.name}'.format( {'user': { 'name': 'Markus' } } )
KeyError: 'user'
'Hello {user.name}'.format( **{'user': { 'name': 'Markus' } } )
AttributeError: 'dict' object has no attribute 'name'
有办法吗?
Python
dict
对象在默认情况下不可访问属性(即使用点表示法)。所以你要么听命于更难看的括号符号:或者您可以将数据包装在一个点可访问的对象中。可以从PyPI安装几个属性可访问的字典类,例如stuf。
我倾向于将我的集合保存在
stuf
对象中,这样就可以通过属性轻松地访问它们。最小的更改是在模板中使用方括号,而不是句点:
或者,将实际具有该属性的对象放入字典中,例如自定义类或^{} :
还要注意,如果要写出文字,则只需使用关键字参数:
相关问题 更多 >
编程相关推荐