Exception has occurred: TypeError 'NoneType' object is not subscriptable
时间: 2023-07-01 12:12:28 浏览: 202
如果你在运行示例代码时遇到了 `TypeError 'NoneType' object is not subscriptable` 错误,这可能是因为在使用 `get()` 方法访问字典中不存在的键时返回了 `None`,而 `None` 对象不支持索引操作。
在示例代码中,当视频流数据不存在时,`streaming_data` 被设置为 `None`。因此,你需要在使用 `streaming_data` 之前检查它是否为 `None`。例如,你可以添加以下代码:
```python
# 选择需要下载的视频流
stream = None
if streaming_data:
formats = streaming_data.get('formats', [])
for f in formats:
if f['itag'] == 22: # 选择itag为22的视频流(720p)
stream = yt.streams.get_by_itag(22)
break
```
这个代码段将检查 `streaming_data` 是否为 `None`,如果不是,则选择 `itag` 值为 22 的视频流,并将其赋值给 `stream` 变量。如果 `streaming_data` 为 `None`,则 `stream` 变量将保持为 `None`。这样,当你尝试访问 `stream` 变量时,不会出现 `TypeError` 异常。
注意,如果在下载视频时 `stream` 变量为 `None`,则下载操作将失败。因此,你应该在下载之前检查 `stream` 变量是否为 `None`。
阅读全文