我能够成功查询Spotify搜索艺术家。我的问题是我想从JSON响应中提取艺术家的图像URL。
每当我尝试获取URL时,我都会收到错误
TypeError: list indices must be integers or slices, not str
我的代码如下:
import requests
import pyCiscoSpark
import json
import sys
def _url(path):
return 'https://api.spotify.com/v1/search' + path
artist = 'AC/DC'
spotifyR = requests.get(_url('?q={:s}&type=artist'.format(artist)))
spotifyJson = spotifyR.json()
req = spotifyJson['artists']['items']['images']['url']
print(req)
我想要dict中图像的URL,以便我可以选择Spotify具有的正确尺寸的图像。
答案 0 :(得分:1)
您可以通过
直观地查看对象from pprint import pprint
pprint(spotifyJson)
正如jonrsharpe指出的那样,'项目'是一个列表,所以要么迭代它或选择一个元素。 '图像'也是一个清单。
images = spotifyJson['artists']['items'][0]['images']
for img in images:
print(img['width'])
print(img['height'])
print(img['url'])
答案 1 :(得分:0)
json响应中键'items'的值是字典列表。您可能想要执行以下操作:
images = spotifyJson['artists']['items'][0]['images']
for img in images:
print img
这将打印所有图像的信息字典。然后你可以从那里处理你想要的网址:)