【发布时间】:2017-03-03 22:54:09
【问题描述】:
FileB.py 中的代码可以正常工作,但是当我从其他文件调用它时,有时会失败。我发现在下面的代码中调用函数“search_response”时它停止工作了。
文件A.py
from FileB import *
search = "stackoverflow"
searchF(search)
文件B.py
from apiclient.discovery import build
from apiclient.errors import HttpError
from oauth2client.tools import argparser
search = "Google"
def searchF(search):
DEVELOPER_KEY = "REPLACE_ME"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
打印“searchF started” - 有效
def youtube_search(options):
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
developerKey=DEVELOPER_KEY)
search_response = youtube.search().list(
q=options.q,
type="video",
part="id,snippet",
maxResults=options.max_results
).execute()
打印“搜索响应已执行”不起作用
search_videos = []
for search_result in search_response.get("items", []):
search_videos.append(search_result["id"]["videoId"])
video_ids = ",".join(search_videos)
video_response = youtube.videos().list(
id=video_ids,
part='snippet, contentDetails'
).execute()
videos = []
for video_result in video_response.get("items", []):
videos.append("%s, (%s,%s)" % (video_result["snippet"]["title"],
video_result["contentDetails"],
video_result["contentDetails"]))
find = "licensedContent': True"
result = ', '.join(videos)
print find in result
if __name__ == "__main__":
print "__main__"
argparser.add_argument("--q", help="Search term", default=search)
argparser.add_argument("--max-results", help="Max results", default=25)
args = argparser.parse_args()
try:
youtube_search(args)
except HttpError, e:
print "An HTTP error %d occurred:\n%s" % (e.resp.status, e.content)
【问题讨论】:
-
当
__name__ == "__main__"时,您只会调用youtube_search()。当你打电话给searchF()时,这不是真的。 -
if语句应该在模块的顶层,而不是在函数内部。
标签: python youtube-api youtube-data-api