この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:atom
更新日時:2026-05-11 16:38:02

タイトル: can only concatenate str (not NoneType) to str
SEOタイトル: 【Pythonエラー】can only concatenate str (not NoneType) to str

エラー内容

can only concatenate str (not "NoneType") to str

このエラーの意味

文字列 str に対して、None をそのまま連結しようとしたときに発生します。
Python では "abc" + None のような連結はできません。

よくある発生例

name = None

message = "user: " + name

この例では nameNone なのでエラーになります。

原因

  • 関数が想定外に None を返している
  • 辞書やリクエスト値の取得結果が空で None になっている
  • 初期化していない変数をそのまま連結している

対処法1: None かどうか先に判定する

name = get_name()

if name is None:

name = ""

message = "user: " + name

対処法2: 代替値を入れてから連結する

name = get_name() or ""

message = "user: " + name

空文字でよい場面なら、この形が簡潔です。

対処法3: そもそも None を返さないようにする

呼び出し元で毎回対処するより、関数側で空文字を返すようにした方が安全な場合もあります。

def get_name():

value = fetch_name()

return value if value is not None else ""

str() で無理やり変換する場合の注意

str(None)"None" になるため、エラー回避だけならできます。
ただし、画面表示やCSV出力で文字列の None が混ざることがあるので、意味的に正しいか確認してから使うべきです。

まとめ

can only concatenate str (not "NoneType") to str は、文字列連結に None が混ざっているのが原因です。
まずは is None 判定か or "" で防ぎ、必要に応じて値の返し元を見直すと再発しにくくなります。