[python] 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을 사용하고 있습니다.



답변

문제는 서식을위한 키를 지정하지 않은 문자 {}문자입니다. 두 배로 늘려야하므로 코드를 다음과 같이 변경하십시오.

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


답변