Python:将YouTube分析数据(来自API)放入数据框架

Python:将YouTube分析数据(来自API)放入数据框架,python,statistics,youtube-api,youtube-data-api,Python,Statistics,Youtube Api,Youtube Data Api,亲爱的开发者朋友们: 我希望你很好 我从Python语言开始(我学习了一些课程),我决定提高我的技能,尝试分析Youtube频道(Amixem,一个fench Youtube) 因此,我尝试将YouTube数据(来自API)放入一个数据帧(以便在第二次中进行一些统计) 我不知道第35行(下面提供的代码)应该是哪个变量,而不是这个变量video_id: for i in range(0, len(video_ids), 40): 我有: NameError: name 'video_ids' i

亲爱的开发者朋友们:

我希望你很好

我从Python语言开始(我学习了一些课程),我决定提高我的技能,尝试分析Youtube频道(Amixem,一个fench Youtube)

因此,我尝试将YouTube数据(来自API)放入一个数据帧(以便在第二次中进行一些统计)

我不知道第35行(下面提供的代码)应该是哪个变量,而不是这个变量video_id:

for i in range(0, len(video_ids), 40):
我有:

NameError: name 'video_ids' is not defined
TypeError: sequence item 0: expected str instance, dict found
我将“video_id”替换为“videos”(Amixem的全部视频-580个视频-以停止计数):

我有:

NameError: name 'video_ids' is not defined
TypeError: sequence item 0: expected str instance, dict found
因此,我尝试用以下方法解决此问题:

for i in range(0, len(videos), 40):
    res = (youtube).videos().list(id=",".join(str(v) for v in videos),part="statistics").execute()
因此,我:

googleapiclient.errors.HttpError: <HttpError 400 when requesting https://youtube.googleapis.com/youtube/v3/videos returned "The request specifies an invalid filter parameter."
谢谢, Aurélien.

替换代码:

for i in range(0, len(videos), 40):
    res = (youtube).videos().list(id=",".join(str(v) for v in videos),part="statistics").execute() 
与:


好的,我找到了解决方案:

您只需定义视频\u ID:

video_id=list(映射(lambda x:x['snippet']['resourceId']['videoId'], (视频)

因此,我们:

#获取每个视频统计信息的统计信息=[]视频ID=列表(映射(lambda x:x['snippet']['resourceId']['videoId'],视频))用于 范围内的i(0,len(视频标识),40): res=(youtube).videos().list(id=“,”.join(video_id[i:i+40]),part=“statistics”).execute() 统计数据+=res[“项目”]


你好,巴巴杜克。谢谢你帮助我。我尝试过,但我有:TypeError:列表索引必须是整数或切片,而不是str。我尝试过修复它,但没有成功。尝试编辑后的答案,如果有效,请投票并将此问题标记为已回答
for i in range(0, len(videos)):
    res = (youtube).videos().list(id=videos[i]['snippet']['resourceId']['videoId']),part="statistics").execute()