1. ホーム
  2. python

[解決済み] str.format() は KeyError を発生させます。

2023-04-13 09:54:57

質問

次のコードは 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))