JSON中的循环列表项

2024-09-30 06:25:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我能够成功地查询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拥有的正确大小的图像。你知道吗


Tags: path图像importjsonurlartist错误requests
2条回答

json响应中键“items”的值是字典列表。您可能需要执行以下操作:

   images = spotifyJson['artists']['items'][0]['images']
   for img in images:
       print img

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

你可以通过

from pprint import pprint
pprint(spotifyJson)

事实上,正如jornsharpe所指出的,“items”是一个列表,所以要么遍历它,要么选择一个元素。 “图像”也是一个列表。你知道吗

images = spotifyJson['artists']['items'][0]['images']
for img in images:
  print(img['width'])
  print(img['height'])
  print(img['url'])

相关问题 更多 >

    热门问题