我是一名Python初学者。我想知道有没有人可以帮助我解决在使用字典进行字符串插值时出现的KeyError
问题,该问题发生在str.format
中。
dictionary = {'key1': 'val1', '1': 'val2'}
string1 = 'Interpolating {0[key1]}'.format(dictionary)
print string1
上述代码运行正常,输出结果为:
Interpolating val1
然而,执行以下操作:
dictionary = {'key1': 'val1', '1': 'val2'}
string2 = 'Interpolating {0[1]}'.format(dictionary)
print string2
结果为:
Traceback (most recent call last):
File "test.py", line 3, in <module>
string2 = 'Interpolating {0[1]}'.format(dictionary)
KeyError: 1L
因此,在我看来,问题似乎在于将数字键解释为列表索引。有没有什么办法可以解决这个问题?(即表明这实际上是一个字典键)
TIA,如果这个问题以前被问过而我没有找到任何相关的东西,那么请原谅我的搜索技巧不够好。
编辑1:正如BrenBarn所指出的那样,该键不是数字,而是一个数字的字符串表示形式。
string2 = 'Interpolating {}'.format(dictionary['1'])
? - KobeJohn'插值 {key1}'。format(**dictionary)
。 - John La Rooy'{0[1].some_attr}'.format({'1' : someobj})
)。 - decimus phostle