エラーメッセージ
状態:-
閲覧数:1,226
投稿日:2017-11-05
更新日:2017-11-11
「dict_keysオブジェクト」はインデックスをサポートしていない
「dict_keysオブジェクト」へ「インデックスアクセス」しようとしたことによるエラー
・リストへなら「インデックスアクセス」可
辞書のkeys()メソッドは、バージョンにより動作が異なる
Python2系
・リストを返す
Python3系
・dict_keysを返す
「インデックスアクセス」するためには、「dict_keysオブジェクト」をリストへ変換する必要がある
[error] TypeError: 'dict_keys' object does not support indexing, referer
エラー原因
「dict_keysオブジェクト」へ「インデックスアクセス」しようとしたことによるエラー
・リストへなら「インデックスアクセス」可
背景
辞書のkeys()メソッドは、バージョンにより動作が異なる
Python2系
・リストを返す
Python3系
・dict_keysを返す
エラー対応
「インデックスアクセス」するためには、「dict_keysオブジェクト」をリストへ変換する必要がある
実際に遭遇した例
エラーメッセージ
Apacheログ
[error] [client 123.456.78.901] TypeError: 'dict_keys' object does not support indexing, referer
エラー発生箇所
▼index.py
lookup_key = item.attrib.keys()[0]
エラー修正内容
▼index.py
lookup_key = list(item.attrib.keys())[0]