2013-10-04 625 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