强制将字典键用作具有 str.format 的参数说明符



我有以下字符串插值:

>>> a = {'test1.1': 5}
>>> 'test: {test1.1}'.format(**a)
KeyError: 'test1'

它显然失败了,因为格式实际上是在尝试访问对象test1及其属性1。有没有办法格式化此字符串并强制将键值作为字符串?(寻找 Python 2 和 3 解决方案。

一个小技巧,但这可以解决问题:

In [5]: 'test: {0[test1.1]}'.format(a)
Out[5]: 'test: 5'

[..] 使用类似字典的索引。0是位置索引,a第 0 个参数。如果这是唯一的参数,则可以省略0

只是另一种选择。 旧的%样式格式不在乎:

>>> a = {'test1.1': 5}
>>> 'test: %(test1.1)s' % a
'test: 5'

最新更新