str.format()会引发KeyError异常
问题描述:
下面的代码引起了KeyError
例外:str.format()会引发KeyError异常
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))
你可以使用list comprehension完成同样的任务(使用'enumerate'获取indeces)。 – SwiftsNamesake 2015-05-12 16:35:37