Python 不会通过 YouTube Live Chat API 读取实时聊天消息,因为一行代码有问题。



我目前正在Python上开发YouTube聊天阅读器脚本,有一行永远不起作用。

它是vID = r.get['items']('id(videoId)')[0]

我在这一行上尝试了14种不同的代码,但都不起作用。

原始代码来自这里,几乎没有自定义,因此可以复制实际消息。

params = {
'part': 'id',
'key': API_KEY,
'channelId': channelID,
'eventType': 'live',
'type': 'video',
'order': 'viewCount',
'fields': 'items(id(videoId))'
}
print("JS Loaded")
url = 'https://www.googleapis.com/youtube/v3/search'
r = requests.get(url, headers=None, params=params).json()
print("API Loaded")
vID = r.get['items']('id(videoId)')[0]

下面是一小段有问题的代码。尤其是CCD_ 2部分。

Try 1: vID = r.get('items')[0]['id']['videoId'] Result: IndexError: list index out of range
Try 2: vID = r.get['items'][0]['id']['videoId'] Result: TypeError: 'builtin_function_or_method' object is not subscriptable
Try 3: vID = r.get['items']['id']['videoId'][0] Result: TypeError: 'builtin_function_or_method' object is not subscriptable 
Try 4: vID = r.get('items')['id']['videoId'][0] Result: TypeError: list indices must be integers or slices, not str
Try 5: vID = r.get('items')('id')('videoId')[0] Result: TypeError: 'list' object is not callable
Try 6: vID = r.get('items')[0]('id')('videoId') Result: IndexError: list index out of range
Try 7: vID = r.get['items(id(videoId)'][0] Result: TypeError: 'builtin_function_or_method' object is not subscriptable  
Try 8: vID = r.get('items(id(videoId)')[0] Result: TypeError: 'NoneType' object is not subscriptable
Try 9: vID = r.get('items')('id(videoId)')[0] Result: TypeError: 'list' object is not callable
Try 10: vID = r.get('items')[0]('id(videoId)') Result: IndexError: list index out of range
Try 11: vID = r.get['items'][0]('id(videoId)') Result: TypeError: 'builtin_function_or_method' object is not subscriptable 
Try 12: vID = r.get['items'][0]['id(videoId)'] Result: TypeError: 'builtin_function_or_method' object is not subscriptable 
Try 13: vID = r.get['items']['id(videoId)'][0] Result: TypeError: 'builtin_function_or_method' object is not subscriptable       
Try 14: vID = r.get['items']('id(videoId)')[0] Result: TypeError: 'builtin_function_or_method' object is not subscriptable

以下是修复代码的每一次尝试,但都不起作用。还有它给我的错误信息。

在代码中,varr表示来自requests库的响应。.json()确保varr(请求的响应(的主体内容从JSON转换为python对象(字典(。

知道了这一点,做r.get['items']是没有意义的,因为正确的语法是r.get('whatever_key_here')

现在,如果您想更进一步,您需要知道返回对象的格式。r.get('items')返回对象中键"items"的值。如果该值是一个列表,则r.get('items')[0]将返回该列表的第一个值。如果该值本身是一个字典,并且您想要关键字"id"的值,则r.get('items')[0].get('id')将返回该值。

由于我不知道你用r得到的回复的格式,我无法详细说明。如果您在创建r之后执行print(r),您可以共享为您创建的实际对象,然后我们可以指出您正在寻找的语法:(

相关内容

最新更新