2016-10-21 59 views
0

ここに何か質問するのは初めてです。私はYoutube APIにアクセスして、自分が行っている実験のために何かを得ることを試みてきました。今のところすべてが動作しています。私はちょうど私が得ているこの非常に矛盾したエラーについて尋ねたかった。Pythonを使用したYoutube APIを使用したKeyError

----------- 
1 
Title: All Movie Trailers of New York Comic-Con (2016) Power Rangers, John Wick 2... 
Uploaded by: KinoCheck International 
Uploaded on: 2016-10-12T14:43:42.000Z 
Video ID: pWOH-OZQUj0 
2 
Title: Movieclips Trailers 
Uploaded by: Movieclips Trailers 
Uploaded on: 2011-04-01T18:43:14.000Z 
Video ID: Traceback (most recent call last): 
    File "scrapeyoutube.py", line 24, in <module> 
    print "Video ID:\t", search_result['id']['videoId'] 
KeyError: 'videoId' 

ビデオID(ドキュメントごとに 'videoID')を取得しようとしました。しかし、何らかの理由で、コードは第1のクエリで動作し、その後第2のクエリでは完全にフロップします。それはこの特定の要素のためだけに起こっているので変です。他のすべて( 'description'、 'publishedAt'など)が動作しています。ここに私のコードです:

from apiclient.discovery import build 
import json 
import pprint 
import sys 

APINAME = 'youtube' 
APIVERSION = 'v3' 
APIKEY = 'secret teehee' 

service = build(APINAME, APIVERSION, developerKey = APIKEY) 

#volumes source ('public'), search query ('androide') 
searchrequest = service.search().list(q ='movie trailers', part ='id, snippet', maxResults = 25).execute() 

searchcount = 0 
print "-----------" 
for search_result in searchrequest.get("items", []): 
    searchcount +=1 
    print searchcount 
    print "Title:\t", search_result['snippet']['title'] 
    # print "Description:\t", search_result['snippet']['description'] 
    print "Uploaded by:\t", search_result['snippet']['channelTitle'] 
    print "Uploaded on:\t", search_result['snippet']['publishedAt'] 
    print "Video ID:\t", search_result['id']['videoId'] 

あなたは私を助けることを願っています。ありがとう!

+0

あなたの説明は 'videoID'と記述されていますが、コードは' videoId'を使用しています。 (それは最初のビデオのために働く、それで多分ちょうどタイプミス?) –

+0

Yup!あなたはそれを持っています。ありがとう!私は本当にあなたに答えてくれたことは決してありませんでした。 – Furankisan

答えて

-1

キー "ID" にはいくつかの結果は、リターンので:あなたが見ることができます

{u'kind': u'youtube#playlist', u'playlistId': u'PLd0_QArxznVHnlvJp0ki5bpmBj4f64J7P'} 

、どのキー "VIDEOIDは" ありません。

関連する問題