我目前正在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)
,您可以共享为您创建的实际对象,然后我们可以指出您正在寻找的语法:(