Str.format() вызывает KeyError
Следующий код вызывает исключение 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.
Ответы
Ответ 1
Проблема заключается в тех {и} символах, которые у вас там есть, которые не указывают ключ для форматирования. Вам нужно удвоить их, поэтому измените код на:
addr_list_formatted.append("""
"{0}"
{{
"gamedir" "str"
"address" "{1}"
}}
""".format(addr_list_idx, addr))