1. ホーム
  2. パイソン

AttributeError: 'function' オブジェクトに 'xxx' 属性がない エラー

2022-02-21 12:53:04

AttributeErrorエラーの原因の1つは、関数名がシステム名と衝突していることですので、関数名を変更してください。

元のコードは次のようになります。

#! /usr/bin/env python
# coding=utf-8
import codecs
import csv

def csv(storage):
    csv_storage = []
    with codecs.open(storage, 'r', encoding='utf-8') as fp:
        fp_key = csv.reader(fp)
        for csv_key in fp_key:
            csv_reader = csv.DictReader(fp, fieldnames=csv_key)
            for row in csv_reader:
                csv_dict = dict(row)
                csv_storage.append(csv_dict)
    print(len(csv_storage))

if __name__ == '__main__':
    csv('test.csv')

このようなエラーメッセージが表示されます。

長い間トラブルシューティングを行った結果、問題は関数名にあることが判明したので、関数名を変更することができます

def csv(storage):

 完了後に修正されたコードブロック。

def csv_new(storage):
    csv_storage = []
    with codecs.open(storage, 'r', encoding='utf-8') as fp:
        fp_key = csv.reader(fp)
        for csv_key in fp_key:
            csv_reader = csv.DictReader(fp, fieldnames=csv_key)
            for row in csv_reader:
                csv_dict = dict(row)
                csv_storage.append(csv_dict)
    print(len(csv_storage))

if __name__ == '__main__':
    csv_new('test.csv')

function'エラーの解決に役立つといいのですが。