我的目标是连接到youtubeapi并下载特定音乐制作人的url。在视频中,代码运行得很好。但是当我在Python2.7上尝试它时,它给了我KeyError:“items”。你知道吗
我知道当字典使用不正确或键不存在时,可能会发生键错误。你知道吗
我试着去google开发者的youtube网站,确保“items”存在并且确实存在。你知道吗
我也知道使用get()可能对我的问题有帮助,但我不确定。有没有关于使用以下代码修复KeyError的建议,或者关于如何改进代码以达到下载URL的主要目标的建议(我有一个Youtube API)?你知道吗
代码如下:
#these modules help with HTTP request from Youtube
import urllib
import urllib2
import json
API_KEY = open("/Users/ereyes/Desktop/APIKey.rtf","r")
API_KEY = API_KEY.read()
searchTerm = raw_input('Search for a video:')
searchTerm = urllib.quote_plus(searchTerm)
url = 'https://www.googleapis.com/youtube/v3/search?part=snippet&q='+searchTerm+'&key='+API_KEY
response = urllib.urlopen(url)
videos = json.load(response)
videoMetadata = [] #declaring our list
for video in videos['items']: #"for loop" cycle through json response and searches in items
if video['id']['kind'] == 'youtube#video': #makes sure that item we are looking at is only videos
videoMetadata.append(video['snippet']['title']+ # getting title of video and putting into list
"\nhttp://youtube.com/watch?v="+video['id']['videoId'])
videoMetadata.sort(); # sorts our list alphaetically
print ("\nSearch Results:\n") #print out search results
for metadata in videoMetadata:
print (metadata)+"\n"
raw_input('Press Enter to Exit')
问题很可能是对API键使用RTF文件而不是纯文本文件的组合,并且您似乎不知道是使用urllib还是urllib2,因为您同时导入了这两个文件。你知道吗
我个人建议使用requests,但我认为您需要读取()请求的内容以获取字符串
您可以通过打印响应变量来检查这一点
相关问题 更多 >
编程相关推荐