2013-10-04 257 views
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()直接从字典中创建列表,但所有值都使用unicode,因此组织起来更加困难。另外,它为每个.mp3文件创建一个单独的数组。

我对Python比较新,所以对于我的问题的任何帮助将不胜感激。

更多信息:

音频词典给我说说5000+的东西线看起来像这样,当我把它打印出来:

因此,在使用STR()上的发言权后
{'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'])} 

,所有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'] 

当我打印轨迹[0],它给了我所有的歌曲5000和TRCK [1]超出范围。我怎样才能解决这个问题?

+0

你有列表,而不是数组..在Python中还有一个'array'模块。 –

+0

你会得到什么错误? –

+0

@Martjin啊!我祝贺你的第一条评论。我很高兴看到有人关注术语的精确性。 – eyquem

回答

3

列表的append方法修改列表并返回None。当您使用append时,请删除作业,即使用trck.append(tracks)而不是trck = trck.append(tracks),否则变量将被分配到None,您将失去列表。

+0

谢谢,但现在我有这个列表,其中列表[0]对应于所有专辑标题。我怎样才能做到这一点,所以每个专辑标题需要列表(n)的位置? – Waves

+0

也许你不想追加你想要的东西,像'trck = list(tracks)',但是它真的必须知道没有关于你的数据如何组织的更多信息。如果你可以添加一些示例数据到你的问题,这将真的有帮助。一般而言,如果包含复制错误或问题的工作代码以及相关的小数据集,则您将得到更好的答案。 –

+0

对不起。我添加了一些信息。 – Waves