Python | ‘type’ object is not subscriptable エラーの原因と解決策

Python エラー,Python

Python | 'type’ object is not subscriptable エラーの原因と解決策

Pythonの実行時に発生するエラー「"type’ object is not subscriptable’ object is not subscriptable」の原因と解決策について紹介しています。

TypeError: 'type' object is not subscriptable
タイプエラー:’type' オブジェクトは添字可能ではありません

確認環境

Windows11 ローカル
Python python-3.11.1

'type’ object is not subscriptable エラーについて

「"type’ object is not subscriptable’ object is not subscriptable」というPythonの実行エラーはオブジェクト型を必要とする処理において、値がオブジェクト型ではない場合に発生するエラーです。
例えば、リストの辞書と想定する変数に対して実際は辞書以外の値が含まれている場合にsorted()を関数を利用すると発生します。

このエラーは以下のコードなどで出力されます。

data = [{'name': 'Apple', 'val': 100}, {'name': 'Banan', 'val': 50}, 3]
data2 = sorted(data, key=lambda  x: x['val'])

# TypeError:'int' object is not subscriptable

'type’ object is not subscriptable エラーの解決策

「’xxx’ object is not subscriptable」エラーの問題を解決するには、エラーの発生している処理に対して、正常にオブジェクト型が渡されているかどうか確認する必要があります。
オブジェクト型ではない値が渡されている場合は、修正します。

data = [{'name': 'Apple', 'val': 100}, {'name': 'Banan', 'val': 50}, {'name': 'Pine', 'val': 150}]
data2 = sorted(data, key=lambda  x: x['val'])