2017-04-14 5 views
0

私は、曲名、トラック番号、ジャンルの種類の辞書を返すクラスを定義しようとしています(これは、特定のアーティストによるiTunesのAPIリクエストからのものです)。現在、ターミナルでファイルを実行すると、何も返されません(構文エラーまたはトレースバックを受け取っていません)。私は、トラック名、トラック番号、代替ジャンルの辞書を見ることを期待しています。どんな助けも素晴らしいだろう!Cached JSONのクラス定義

class Song(): 
def __init__(self, song_dict={}): 
    self.trackName = song_dict["trackName"] 
    self.trackNumber = song_dict["trackNumber"] 
    self.genre = song_dict["primaryGenreName"]["alternative"] 
def __str__(self): 

return "{} by {}".format(self.trackName,self.trackNumber,self.genre) 

キャッシュJSON:

{"http://itunes.apple.com/searchcountry-US_entity-song_format-json_term-bon+iver": {"resultCount": 50, "results": [{"collectionExplicitness": "notExplicit", "releaseDate": "2011-06-21T07:00:00Z", "currency": "USD", "artistId": 273428126, "previewUrl": "http://audio.itunes.apple.com/apple-assets-us-std-000001/AudioPreview71/v4/29/b7/6d/29b76dbc-c7c2-a528-98c0-88250c90d61f/mzaf_8791054078902679680.plus.aac.p.m4a", "trackPrice": 1.29, "isStreamable": true, "trackViewUrl": "https://itunes.apple.com/us/album/holocene/id438685974?i=438685989&uo=4", "collectionName": "Bon Iver", "collectionId": 438685974, "trackId": 438685989, "collectionViewUrl": "https://itunes.apple.com/us/album/holocene/id438685974?i=438685989&uo=4", "trackCount": 10, "trackNumber": 3, "discNumber": 1, "collectionPrice": 9.99, "trackCensoredName": "Holocene", "trackName": "Holocene", "trackTimeMillis": 336613, "primaryGenreName": "Alternative", "artistViewUrl": "https://itunes.apple.com/us/artist/bon-iver/id273428126?uo=4", "kind": "song", "country": "USA", "wrapperType": "track", "artworkUrl100": "http://is3.mzstatic.com/image/thumb/Music/v4/f6/41/9b/f6419bd5-7fa7-6046-04d0-fcae6ecf9d96/source/100x100bb.jpg", "collectionCensoredName": "Bon Iver", "artistName": "Bon Iver", "artworkUrl60": "http://is3.mzstatic.com/image/thumb/Music/v4/f6/41/9b/f6419bd5-7fa7-6046-04d0-fcae6ecf9d96/source/60x60bb.jpg", "trackExplicitness": "notExplicit", "artworkUrl30": "http://is3.mzstatic.com/image/thumb/Music/v4/f6/41/9b/f6419bd5-7fa7-6046-04d0-fcae6ecf9d96/source/30x30bb.jpg", "discCount": 1}, {"contentAdvisoryRating": "Explicit", "collectionExplicitness": "explicit", "releaseDate": "2010-11-22T08:00:00Z", "currency": "USD", "artistId": 2715720, "previewUrl": "http://a1044.phobos.apple.com/us/r30/Music/ac/5a/7b/mzm.wurlfubj.aac.p.m4a", "trackPrice": 1.29, "isStreamable": true, "trackViewUrl": "https://itunes.apple.com/us/album/monster-feat-jay-z-rick-ross-nicki-minaj-bon-iver/id403822142?i=403822318&uo=4", "collectionName": "My Beautiful Dark Twisted Fantasy", "collectionId": 403822142, "trackId": 403822318, "collectionViewUrl": 
+1

あなたはあなたが遭遇している問題については言及していません。このコードには、字下げ、initメソッドからの戻り値、song_dictとそのキー間の不要な等号、変更可能なデフォルト引数があります。 –

答えて

0

2つのこと:

  1. まず、あなたが/必要たくないいくつかの等号(意味、割り当てを)持っています。この:

    self.trackName =song_dict["trackName"] 
    self.trackNumber=song_dict=["trackNumber"] 
    self.primaryGenreName =song_dict=["primaryGenreName"] 
    

    このなった場合:

    self.trackName = song_dict["trackName"] 
    self.trackNumber = song_dict["trackNumber"] 
    self.primaryGenreName = song_dict["primaryGenreName"] 
    
  2. 次は、Pythonでクラスのコンストラクタ(__init__)から物事を返しません。したがって、return文を削除してください。

+0

チップのおかげで。私は等号と返信文を削除しました。その他のアドバイス?ありがとう! – sammie1991