str.format () повышает KeyError

Следующий код повышает a 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.

63
задан dreftymac 1 July 2018 в 14:51
поделиться

1 ответ

Проблема в тех { и } символах, которые у вас там есть, в которых не указан ключ для форматирования. . Вам нужно удвоить их, поэтому измените свой код на:

addr_list_formatted.append("""
    "{0}"
    {{
    "gamedir"  "str"
    "address"  "{1}"
    }}
""".format(addr_list_idx, addr))
120
ответ дан 24 November 2019 в 16:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: