无法从图表中打印每个歌曲的标题。获取AttributeError吗?

时间:2018-08-21 23:52:16

标签: python list indexing error-handling

这是短代码:

Import billboard
chart = billboard.ChartData('hot-100')
song = chart[0:99]
print(song.title)

这是错误:

 Traceback (most recent call last):
 File "Billboardtop100weekly", line 7, in <module>
 print(song.title)
 AttributeError: 'list' object has no attribute 'title'

试图复制此api,从列表中提取歌曲标题,但我不知道如何。任何帮助表示赞赏

1 个答案:

答案 0 :(得分:2)

chart是歌曲对象的列表。

因此,快速入门文档中的以下代码:

>>> song = chart[0]  # Get no. 1 song on chart
>>> song.title

…正在获取第一个歌曲对象,然后获取其标题。这就是[0]的意思:您正在索要索引#0处的元素。

但是您的问题中的这段代码:

song = chart[0:99]
print(song.title)

…正在获取前99个歌曲对象的一部分(仍然是歌曲列表,而不是歌曲),然后尝试获取其标题。这就是[0:99]的含义:您要从索引0到(但不包括)索引99的所有元素,这将是一个列表。而且列表没有标题。

如果要打印100首歌曲中前99首的标题,则需要在该片段上循环播放。像这样:

songs = chart[0:99]
for song in songs:
    print(song.title)