使用str.format()结合字典时出现KeyError: 'count',Google示例失效
问题原因及解决办法
- 不是教程过时,也不需要导入额外模块,问题出在
format方法的调用方式上。 str.format()默认需要接收关键字参数或位置参数,直接传字典h的话,它会把整个字典当成单个位置参数,不会自动解析字典里的键值对作为关键字参数,因此找不到count这个关键字,就抛出了KeyError。- 解决方法很简单,调用时用
**解包字典,把字典的键值对转换成format需要的关键字参数即可:s = 'I want {count:d} copies of {word}'.format(**h) - 补充说明:你之前用
%操作符直接传字典能正常工作,比如'I want %(count)d copies of %(word)s' % h,这是两种格式化语法的差异——%支持直接传入字典,而format需要通过**解包。
内容的提问来源于stack exchange,提问作者JSteh
相关产品推荐
相关产品推荐

