如何修复Discord音乐Bot中Try-Except代码的语法错误?
Discord机器人音乐功能语法错误修复
你的代码里存在两处方括号不匹配的语法错误,导致Try-Except块无法正常运行,具体问题和修复方案如下:
错误点分析
- 提取视频条目时,代码写成了
['entries'[0],缺少闭合方括号,正确写法应为['entries'][0](先取'entries'对应的列表,再获取第一个元素)。 - 获取音频源时,代码写成了
info['formats'[0]['0']],不仅方括号嵌套错误,且音频源的键通常是url而非0,正确写法是info['formats'][0]['url']。
修正后的完整代码
def search_yt(self, item): with YoutubeDL(self.YDL_OPTIONS) as ydl: try: info = ydl.extract_info(f"ytsearch:{item}", download=False)['entries'][0] except Exception: return False return {'source': info['formats'][0]['url'], 'title': info['title']}
额外优化建议:用f-string替代%s格式化字符串,代码更简洁易读;同时确保YDL_OPTIONS配置了仅提取音频的选项,避免获取冗余视频格式。
内容的提问来源于stack exchange,提问作者d224
相关产品推荐
相关产品推荐

