0

我有这本名为 audio 的字典,它以 unicode 显示有关 MP3 文件的信息。我使用 str() 将专辑和标题值转换为字符串。

alb = []
trck = []
audio = MP3(fullname)

albums = (str(audio['TALB'])) #TALB is the album key
tracks = (str(audio['TIT2'])) #Track key
trck = trck.append(tracks)
alb = alb.append(album)

当我在第六行之后打印结果时,它会输出 5000 多首歌曲的所有专辑和曲目标题。之后,我想将曲目和专辑添加到单独的列表中,所以我使用 append() 但是我得到一个错误。有没有其他选择?此外,我尝试使用 .iteritem() 直接从 dict 创建一个列表,但所有值都在 unicode 中,因此更难组织。另外,它为每个 .mp3 文件创建一个单独的数组。

我对 Python 比较陌生,因此对于我的问题的任何帮助将不胜感激。

更多信息:

当我打印出来时,音频词典给了我大约 5000 多行类似这样的内容:

{'TDRC': TDRC(encoding=3, text=[u'1993']), 'TIT2': TIT2(encoding=3, text=[u'All I Wanna     Do']), 'TRCK': TRCK(encoding=3,
text=[u'9']), 'TPE1': TPE1(encoding=3, text=[u'Sheryl Crow']), 'TALB': TALB(encoding=3,     text=[u'Tuesday Night Music Club
']), 'TSSE': TSSE(encoding=3, text=[u'Xiph.Org libVorbis I 20070622']), 'TCON':     TCON(encoding=3, text=[u'Rock'])}

所以在使用 str() 之后,所有的 TIT2 键,打印出来只给我音频字典中每个 TIT2 键的值。

Tricky Kid
Vent
A Groovy Kind Of Love
Do You know The Way To San Jose?
Jamaica
I (Who Have Nothing)
River Deep - Mountain High
Spanish Harlem
Ten Lonely Guys
Will You Love Me Tomorow
Cry
In The Sand
Michel
My Friend
The Dark
Let It Ride
Urban Solitude
Be A Man

等等。接下来,我尝试将这些结果附加到空列表 trck[]。

trck.append(tracks)
print trck

当我打印出来时,我得到了这个:

['Tricky Kid']
['Vent']
['A Groovy Kind Of Love']
['Do You know The Way To San Jose?']
['Jamaica']
['I (Who Have Nothing)']
['River Deep - Mountain High']
['Spanish Harlem']
['Ten Lonely Guys']
['Will You Love Me Tomorow']
['Cry']
['In The Sand']
['Michel']
['My Friend']
['The Dark']
['Let It Ride']
['Urban Solitude']
['Be A Man']

当我打印 track[0] 时,它给了我所有 5000 首歌曲并且 trck[1] 超出了范围。我怎样才能解决这个问题?

4

1 回答 1

3

列表的append方法在原地修改列表并返回None。使用 时删除分配append,即使用trck.append(tracks)而不是trck = trck.append(tracks),否则变量将被分配给None并且您会丢失列表。

于 2013-10-04T23:52:17.013 回答