强制dict键用作str.format的参数说明符

mar*_*t1n 7 python string format

我有以下字符串插值:

>>> a = {'test1.1': 5}
>>> 'test: {test1.1}'.format(**a)
KeyError: 'test1'
Run Code Online (Sandbox Code Playgroud)

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

cs9*_*s95 10

一点点黑客,但这样做的诀窍:

In [5]: 'test: {0[test1.1]}'.format(a)
Out[5]: 'test: 5'
Run Code Online (Sandbox Code Playgroud)

使用类似dict的索引[..].的0是位置索引,并且a是0 参数.如果它是唯一的参数,则可以省略 0.

  • 完善!为了使它更好,我可以将字典作为kwarg传递:`'test:{a [test1.1]}'.format(a = a)`.谢谢! (3认同)