2016-07-30 48 views
0

我試圖從tweet中獲取視頻網址,A來自tweepy。由於Twitter不知道哪一個是最高質量的視頻,我假設我必須比較最高的「比特率」並存儲與其相對應的「網址」。這是我的。從列表中獲取正確的數據

請耐心等待,我是新手。

A = [{'content_type': 'application/x-mpegURL', 'url': 'https://video.twimg.com/ext_tw_video/758995712280412672/pu/pl/X_6gAm0z8TBBbEAR.m3u8'}, 
    {'bitrate': 832000, 'content_type': 'video/mp4', 'url': 'https://video.twimg.com/ext_tw_video/758995754280412672/pu/vid/360x640/6nxKFKpdku-qAl__.mp4'}, 
    {'content_type': 'application/dash+xml', 'url': 'https://video.twimg.com/ext_tw_video/758995715280412672/pu/pl/X_6gAm0z8TBBbEAR.mpd'}, 
    {'bitrate': 320000, 'content_type': 'video/mp4', 'url': 'https://video.twimg.com/ext_tw_video/758995715280412672/pu/vid/180x320/VqRF6IcnmsLxZIil.mp4'}] 


for i, val in enumerate(A): 
    if 'bitrate' in A[i]: 
     print(A[i]['bitrate'], A[i]['url']) 

這段代碼產生

832000 https://video.twimg.com/ext_tw_video/758996713280412672/pu/vid/360x640/6nxKFKpdku-qAl__.mp4 
320000 https://video.twimg.com/ext_tw_video/758997716280412672/pu/vid/180x320/VqRF6IcnmsLxZIil.mp4 

如何存放的[ '網址']與最高[ '比特率']對應到一個變量?

+2

那麼,什麼是你的問題嗎? –

+0

max(A,key = lambda x:x ['bitrate'])? –

+0

@IronFist對不起,我應該說清楚,如何將['url']與最高['bitrate']對應的值存儲到變量中? –

回答

2

如果你想獲得最高比特率字典(或網址):

與此相比,使用bitrate關鍵詞典列表中的項目,並返回最高bitrate字典。

max(A, key=lambda x:x['bitrate'])['url'] 

編輯:根據上述的評論,你可以將URL分配給當然變量。

variable = max(A, key=lambda x:x['bitrate'])['url'] 

EDIT1:根據您下面COMENT - 你認爲正確的,你必須從列表中排除這樣的字典。

這不包括沒有「比特率」鍵的字典:

[d for d in A if d.has_key('bitrate')] 

所以,你必須切換到該線之上,因此結果將是:

variable = max([d for d in A if d.has_key('bitrate')],key=lambda x:x['bitrate']) 
+0

這給了我錯誤'KeyError:'bitrate'',我相信因爲不是所有字典都有'bitrate'?無論如何只能比較那些「比特率」的字典嗎? –

+0

@YogaYudistira我已經更新了我的答案。請檢查它,如果你滿意標記它解決。 –

相關問題