JSON中的循环列表项

时间:2016-06-03 22:10:20

标签: python json spotify

我能够成功查询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具有的正确尺寸的图像。

2 个答案:

答案 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

这将打印所有图像的信息字典。然后你可以从那里处理你想要的网址:)