Pythonで環境変数を扱う際によく使う os.environ は、辞書(ディクショナリ)風にアクセスできるオブジェクトです。
そのため、os.environ.get
と os.environ[]
は、ディクショナリ操作の違いとして理解するのがポイントです。
主な違い
存在しない環境変数を指定した場合の動作
os.environ.get("KEY")
存在しない場合は None
を返します。デフォルト値を指定することも可能です。
例:
iam_role_arn = os.environ.get("REDSHIFT_IAM_AUTH_ROLE_ARN", "default_role_arn")
os.environ["KEY"]
存在しない場合は KeyError を発生させます。値が必須の場合に便利です。
例:
iam_role_arn = os.environ["REDSHIFT_IAM_AUTH_ROLE_ARN"] # 未設定ならエラー
使い分け
os.environ.get
環境変数が存在しなくても柔軟に対応したい場合に使用します。
例: デフォルト値を指定してプログラムを続行。
os.environ[]
必須の環境変数が設定されていない場合にエラーを発生させたい場合に使用します。
例: 設定ミスをすぐに発見したいとき。
まとめ
安全で柔軟に動作させたいなら os.environ.get。
必須チェックを徹底したいなら os.environ[]。
これらの違いを理解し、用途に応じて使い分けてみてください!