Pylance(Pyright)使用時python-dotenvで'str | None'が返ってきた時の対処法

公開日:
目次

python-dotenvライブラリ使用中Pylance(Pyright)の警告に対処したので備忘録を残します。

エラー(警告)の詳細

pythonのdotenvを利用して、環境変数をos.getenvでgmailのアドレスをとってくる下記のコードを書きました。

from dotenv import load_dotenv
import os

load_dotenv()
gmail_address: str = os.getenv('GMAIL_ADDRESS')

すると下記のようなエラーが表示されました。

エラー(警告)の原因

警告に表示されているように、os.getenv()の返り値はstr | None型です。

それにもかかわらずstr型のgmail_adressという変数に入れようとしているから警告を出されています。

解決法

色々あると思いますが、or演算子を使用して、Noneを空文字列""に置き換える方法にしました。

os.getenvの返り値がNoneの場合でも、結果的に空文字列を変数に代入することができ、型の不一致を回避できます。

具体的には下記のようなコードになります。

from dotenv import load_dotenv
import os

load_dotenv()
gmail_address: str = os.getenv('GMAIL_ADDRESS') or ""

他にもいい方法もあるかもしれませんが、ひとまずこれで解消しました。

他にいい方法を知っている方いれば教えてください。