python 不确定YouTube v3 API的打印结构

v1uwarro  于 2022-11-21  发布在  Python
关注(0)|答案(1)|浏览(181)

所以我创建了一个脚本来列出来自Google V3 YouTube API的信息,我使用了他们网站上显示的结构来描述它,所以我很确定我误解了什么。
我试着使用显示的结构打印视频的标题作为测试

并希望打印该文件,但它只是引发了一个错误。错误如下所示

下面是我写的

import sys, json, requests

vidCode = input('\nVideo Code Here: ')

url = requests.get(f'https://youtube.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&id={vidCode}&key=(not sharing the api key, lol)')
text = url.text

data = json.loads(text)

if "kind" in data:
    print(f'Video URL: youtube.com/watch?v={vidCode}')
    print('Title: ', data['snippet.title'])
else:
    print("The video could not be found.\n")

这不起作用,但是,如果我将snippet.title更改为类似etag的内容,打印就成功了。
我认为这是因为标题在JSON列表中更靠后。

我也试过做data['items'],它确实起作用了,但我也不想输出大量的未格式化信息,这不太好,哈哈。
我做的另一个测试是data['items.snippet.title'],看看这是否是我错过的,也没有,这没有工作。
知道我做错了什么吗?

xuo3flqw

xuo3flqw1#

需要分别访问字典中的键。

import sys, json, requests

vidCode = input('\nVideo Code Here: ')

url = requests.get(f'https://youtube.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&id={vidCode}&key=(not sharing the api key, lol)')
text = url.text

data = json.loads(text)

if "kind" in data:
    print(f'Video URL: youtube.com/watch?v={vidCode}')
    
    print('Title: ', data['items'][0]['snippet']['title'])
else:
    print("The video could not be found.\n")

为了清楚起见,您需要访问字典中的“items”值,它是一个列表,从该列表中获取第一个项目,然后获取“snippet”子对象,最后获取标题。

相关问题