2016-08-23 64 views
0

爲了得到energy價值觀,我想遍歷這個JSON結果:的Python - 疊代JSON結果

[{u'track_href': u'https://api.spotify.com/v1/tracks/7603o589huckPbiELnUKgu', u'analysis_url': u'https://api.spotify.com/v1/audio-analysis/7603o589huckPbiELnUKgu', u'energy': 0.526, u'liveness': 0.0966, u'tempo': 92.979, u'speechiness': 0.103, u'uri': u'spotify:track:7603o589huckPbiELnUKgu', u'acousticness': 0.176, u'instrumentalness': 0.527, u'time_signature': 4, u'danceability': 0.635, u'key': 1, u'duration_ms': 172497, u'loudness': -8.073, u'valence': 0.267, u'type': u'audio_features', u'id': u'7603o589huckPbiELnUKgu', u'mode': 1},...}] 

我使用列表理解:

[x['energy'] for x in features] 

但我m得到以下錯誤:

print ([x['energy'] for x in features]) 
TypeError: 'NoneType' object has no attribute '__getitem__' 

我在做什麼錯在這裏?

+0

您能發表更多的代碼嗎?你有使用'json.load'的JSON對象嗎? – seanmus

回答

3

這是因爲在你的JSON數組中,在某個地方而不是字典中存在值None。您可以通過以下方式將其消除:

[x['energy'] for x in features if x]