2017-04-14 28 views
0

我想定义一个类,它返回带有歌曲标题,曲目号和流派类型的字典(这是来自特定艺术家对歌曲的iTunes API请求)。目前,当我在终端中运行我的文件时,没有任何内容正在返回(我没有收到语法错误或回溯)。我期待看到一个带有曲目名称,曲目编号和另类风格的词典。任何帮助将是伟大的!缓存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

两件事情:

  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