2016-07-30 4 views
0

私はtweetからビデオURLを取得しようとしています。Aはtweepyから取得しました。私は、最高のビットレートを比較し、それに対応する 'url'を保存しなければならないと仮定します。これは私が持っているものです。dict内のリストから正しいデータを取得

私に同行してください、私はこれに新しいです。

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']) 

このコードは

私は変数に最高[ 'ビットレート']に対応する[ '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申し訳ありませんが、私はそれを明確にすべきです。最高の[bitrate]に対応する['url']をどのように変数に格納しますか? –

答えて

2

あなたは辞書(またはURL)を取得したい場合は、最も高いビットレートで:

これはbitrateキーを使用して、辞書のリストの項目を比較し、最も高いbitrateで辞書を返します。

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

EDIT:上記のあなたのコメントによると、あなたはもちろんの変数に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''というエラーを与えます。なぜなら、すべての辞書が「ビットレート」を持っているわけではないからです。とにかく「ビットレート」を持っている辞書を比較するだけですか? –

+0

@YogaYudistira私は自分の答えを更新しました。それを確認して、それが解決したらそれを解決してください。 –

関連する問題