2017-09-30 24 views
-1

以下の属性エラーの原因を突き止めることはできません。ここで間違っていることは本当にわかりません。どんな助けも素晴らしいだろう!Pythonの属性エラー

トレースバック(最新の呼び出しの最後): movie_writter.writerow([movie.title、movie.author、movie.itunes_id、movie.itunes_URL、movie.length]で ファイル "project2.py"、ライン140、 ) はAttributeError:[ムービー "オブジェクトが属性「長さ」を持っていない

class Movie(Media): 
    def __init__(self, diction_file): 
     Media.__init__(self, diction_file) 
     self.rating = diction_file['contentAdvisoryRating'] 
     self.genre = diction_file['primaryGenreName'] 
     try: 
      self.track_time = diction_file['trackTimeMillis'] 
     except: 
      self.track_time = 0 
     try: 
      self.description = diction_file['longDescription'] 
     except: 
      self.description = None 

    def __len__(self): 
     return self.track_time/1000 
    def title_words_num(self): 
     if self.description != None: 
      return len(self.description.split()) 
     else: 
      return 0 

    movie_list = [Movie(diction_file) for diction_file in movie_samples] 

    with open('movies.csv', 'w', newline = '') as movies_csv: 
     movie_writter = csv.writer(movies_csv, delimiter=',') 
     movie_writter.writerow(["Title", "Artist", "ID", "URL", "Length"]) 
     for movie in movie_list: 
      movie_writter.writerow([movie.title, movie.author, movie.itunes_id, movie.itunes_URL, movie.length]) 
    movies_csv.close() 
+2

ムービーオブジェクトは表示できますか? –

+0

@PatrickHaugh私は映画のオブジェクトを表示するために私のポストを編集しました、ありがとう! – Avery9115

+0

@roganjosh作成したMovieクラスを追加しました。ありがとう! – Avery9115

答えて

3

それが何を意味するのか意味:オブジェクトは、属性lengthを持っていません。おそらくlen(movie)を意味し、これは__len__の魔方陣に対応しています。

また、これは__len__メソッドでは最適ではありません。それは、内部のアイテムの量を示すために、あらゆる種類のコレクション/コンテナに使用されることになっています。映画の長さは物事の量ではありません。

+0

すごくうれしかった! – Avery9115

関連する問題