2017-04-14 9 views
0

Ich versuche eine Klasse zu definieren, die ein Wörterbuch mit Titel, der Titelnummer und dem Genre-Typ zurückgibt (dies ist von einer itunes-API-Anfrage für Titel eines bestimmten Interpreten). Momentan, wenn ich meine Datei im Terminal laufe, wird nichts zurückgegeben (ich erhalte keinen Syntaxfehler oder Traceback). Ich erwarte ein Wörterbuch mit dem Titelnamen, der Titelnummer und dem alternativen Genre. Jede Hilfe wäre großartig!Klassendefinition für im Cache gespeicherte 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) 

Cached 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

Sie haben nicht gesagt, welches Problem Sie begegnen. Mit diesem Code sind mindestens vier Dinge falsch: Einrückung, Zurückgeben von Dingen aus einer Init-Methode, unnötige Gleichheitszeichen zwischen dem song_dict und seinen Schlüsseln und dem veränderbaren Standardargument. –

Antwort

0

Zwei Dinge:

  1. Zuerst müssen Sie einige Gleichheitszeichen (Bedeutung, Aufgaben), die Sie nicht/brauchen wollen. Dies:

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

    Sollte diese:

    self.trackName = song_dict["trackName"] 
    self.trackNumber = song_dict["trackNumber"] 
    self.primaryGenreName = song_dict["primaryGenreName"] 
    
  2. Als nächste Sie nicht zurück Dinge aus einer Klasse Konstruktor (__init__) in Python. Löschen Sie die Rückgabeanweisung.

+0

danke für den Tipp. Ich entfernte die Gleichheitszeichen und die Rückkehrerklärung. Noch mehr Ratschläge? Vielen Dank! – sammie1991

Verwandte Themen