【Python】NoneTypeエラー対処まとめ

Python

Pythonで発生するNoneTypeエラーの原因と対処方法をまとめました。よくある原因ごとの解決方法をコード付きでご紹介します。

ぜひ、お試しください。

NoneTypeエラー対処まとめ 2選

‘NoneType’ object has no attribute ‘value’ エラー内容

セルの値を配列に格納しようとしたときに、10行目でエラーが発生しました。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws1 = wb['Sheet1']

ws1_Value = []
ws1_Max_Row = ws1.max_row

for i in range(1,ws1_Max_Row + 1):
    ws1_Value.append(ws1.cell(i, 1)).value

 

エラー発生時のコマンドプロンプト

エラーとして表示されている英語の意味を調べてみました。
返す値をうまく取得できていないようです。

・[NoneType] → 返す値がない
・[object has no attribute] → オブジェクトは属性をもっていない


 

エラー解決方法

下記のように10行目のコードを修正したところ、エラー解決できました。
× → ws1_Value.append(ws1.cell(i, 1)).value
○ → ws1_Value.append(ws1.cell(i, 1).value)

括弧の位置を間違えていて、値を取得できていませんでした。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws1 = wb['Sheet1']

ws1_Value = []
ws1_Max_Row = ws1.max_row

for i in range(1,ws1_Max_Row + 1):
    ws1_Value.append(ws1.cell(i, 1).value)

 
 

‘NoneType’ object has no attribute ‘group’ エラー内容

Regexオブジェクトを使用して、文字列のパターンマッチングをしようとしたときに、
「’NoneType’ object has no attribute ‘group’」というエラーが発生しました。

該当のコード


import re

line = 'ところでドーナツは好きかい'
reg = re.compile(r'ドーナツ')

m = re.match(reg,line)
print(m.group())

 

エラー発生時のコマンドプロンプト

エラーとして表示されている英語の意味を調べてみました。
返す値をうまく取得できていないようです。

・[NoneType] → 返す値がない
・[object has no attribute] → オブジェクトは属性をもっていない


 

エラー解決方法

以下のコーディングに修正したところ、解決できました。
3行目の「line」に格納している文章を変更して、その他のコードは変更していません。

× → ’ところでドーナツは好きかい’
○ → ’ドーナツは好きかい’


import re

line = 'ドーナツは好きかい'
reg = re.compile(r'ドーナツ')

m = re.match(reg,line)
print(m.group())

 

変数 [line] に格納されている文字列の先頭に、
パターンマッチさせる文字列(ドーナツ)がないと、エラーになるようです。


 
 

この記事がお役に立ちますと幸いです。
 
・【Python】よくあるエラーの対処方法まとめ
 

【Python】よくあるエラーの原因と対処方法まとめ:38選
Pythonで、よくあるエラーの原因と対処方法をご紹介します。この記事がお役に立ちますと幸いです。

 

「Python 1年生 体験してわかる!会話でまなべる!」

初めての方でも安心して取り組めるように丁寧に解説
簡単なサンプルを作りながら、対話形式でプログラミングまで紹介
人工知能の導入としてもオススメの1冊です!