str.format()引发KeyError

下面的代码引发了一个KeyErrorexception:

 addr_list_formatted = [] addr_list_idx = 0 for addr in addr_list: # addr_list is a list addr_list_idx = addr_list_idx + 1 addr_list_formatted.append(""" "{0}" { "gamedir" "str" "address" "{1}" } """.format(addr_list_idx, addr)) 

为什么?

我正在使用Python 3.1。

问题是那些没有指定格式化键的{和}字符。 你需要把它们加倍,所以把代码改成:

 addr_list_formatted.append(""" "{0}" {{ "gamedir" "str" "address" "{1}" }} """.format(addr_list_idx, addr))