首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Discordbot TypeError:只能将字符串(而不是"NoneType")连接到字符串

Discordbot TypeError:只能将字符串(而不是"NoneType")连接到字符串
EN

Stack Overflow用户
提问于 2021-10-28 20:24:50
回答 1查看 82关注 0票数 0

我是python的新手,正在尝试制作一个不和谐的机器人,当机器人发送消息显示‘歌曲名称’而不是url时,我得到了这个TypeError: can only concatenate str (not "NoneType") to str,并且不知道如何修复它,当我使用url时,它工作得很好

代码语言:javascript
运行
AI代码解释
复制
@client.command(pass_context = True)
async def play(ctx, *, url):
  if (ctx.author.voice):
    channel = ctx.message.author.voice.channel
    voice = get(client.voice_clients, guild=ctx.guild)
    if voice and voice.is_connected():
      await voice.move_to(channel)
    else:
      voice = await channel.connect()
  else:
    await ctx.send('`You are not in a voice channel`')

  YDL_OPTIONS = {'format': 'bestaudio', 'noplaylist': 'True', 'default_search':"ytsearch"}
  FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'}
  voice = get(client.voice_clients, guild=ctx.guild)
  with YoutubeDL(YDL_OPTIONS) as ydl:
      info = ydl.extract_info(url, download=False)
      if 'entries' in info:
        url = info["entries"][0]["formats"][0]['url']
      elif 'formats' in info:
          url = info["formats"][0]['url']
  if not voice.is_playing():
      voice.play(FFmpegPCMAudio(url, **FFMPEG_OPTIONS), after=lambda x=0: check_queue(ctx, ctx.message.guild.id))

      embed_p = discord.Embed(colour = discord.Colour.magenta())
      embed_p.add_field(name='Playing:『  ' + info.get('title')+' 』', value='『'+ctx.author.mention+'』' , inline=False)
      await ctx.send(embed=embed_p)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-29 04:26:01

当您想要使用它们内部的数据时,您需要了解将来要尝试访问的数据结构。您记录的info变量如下所示:

代码语言:javascript
运行
AI代码解释
复制
   "_type":"playlist",
   "entries":[
      {
         "id":"dQw4w9WgXcQ",
         "title":"Rick Astley - Never Gonna Give You Up (Official Music Video)",
         "formats":[
            {
               "asr":48000,
               "filesize":1232413,
               "format_id":"249",
               .....

并持续很长一段时间。

现在,如果您尝试从info访问title,则会得到None,因为title在info中不存在。但是,如果您更深入地研究该对象,您可以看到有一个

"title":"Rick Astley - Never Gonna Give You Up (Official Music Video)"

要访问它,首先要访问info,然后访问entries,这是一个可以在我上面提供的格式片段中看到的数组。然后,您可以访问包含标题的条目中的第一个对象。

info['entries'][0]['title']替换info.get('title')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69763616

复制
相关文章
运维所需技能体系
产品研发有自己的生命周期: 设计阶段---开发阶段---测试阶段---部署阶段---线上运行阶段---下线或者回滚阶段。
互联网老辛
2018/12/06
9220
python生成项目所需依赖文件
在开发或者在github上clone python项目时,我们经常能看到他们工程的根目录下有一个requirements.txt文件,并且在Readme中介绍使用前需要运行一些命令 这个时什么意思呢? 开发者希望我们能快速配置项目所需要的环境,所以我们需要这个很重要的文件
earthchen
2020/09/24
8140
软件工程 – 专业所需工具
非常好用的开源C/C++ IDE,与mingw搭配使用。替代vc6.0的免费解决方案。
ApacheCN_飞龙
2019/02/15
1.6K0
IOS应用提交所需的ICON
如果提交的ipa包中,未包含必要的Icon就会收到类似的通知,为什么偏偏是Icon-76呢?
meteoric
2018/11/19
8690
mall学习所需知识点
《IntelliJ-IDEA-Tutorial》:https://github.com/judasn/IntelliJ-IDEA-Tutorial
macrozheng
2019/07/22
4990
怎样快速搜索自己所需的资料?
摘要:我不敢保证现在100%的大学生不会使用互联网快速搜索自己所需的资料,但我绝对敢保证有70%~90%大学生不会使用此方法进行快速搜索自己所需的资料。本文以百度为例,分享三个重要技巧。 一、关键词:
用户1756920
2018/06/20
1.6K0
Eclipse中执行Hbase所需jar包
Eclipse中执行Hbase程序需要导入的jar包如下: 1 Hadoop全部jar包 2 Hbase部分jar包     Hbasejar包不能多也不能少,多了会冲突,少了会提醒找不到相应类,Hb
闵开慧
2018/03/30
1.5K0
Eclipse中执行Hbase所需jar包
ios上传appStore所需图片各种尺寸
主要尺寸为(以像素为单位):40 , 60 ,58,87,80,120,180,app store上显示的icon图标尺寸:1024
honey缘木鱼
2018/08/10
5.1K0
ios上传appStore所需图片各种尺寸
JNI所需的C语言知识小结
介绍 作为Android开发人员,会java是必须的,但是一般从事android业务逻辑开发的对C/C++的了解估计仅限于大学里不走心的课程。。。所以参考视频和资料小结一下JNI所需的c语言知识~ 基本数据类型 数据类型 boolean byte char short int long double float void signed unsigned java 1 1 2 2 4 8 8 4 无 无 C 无 无 1 2 4 4 8 4 有符号 无符号 sizeof()函数是用来测量某个类型所占的字节
用户1665735
2018/06/20
1.2K0
软件测试所需要掌握的技能
1.在测试中最重要的文档,他是测试工作的核心,是一组在测试时输入输出的标准,是软件需求的具体对照。编写测试用例,是测试人员的基本功,真正能写好的人并不多。
用户7880705
2020/12/28
1K0
【技能】数据科学家所需技能
小编邀请您,先思考: 1 您认为数据科学家需要具备哪些技能? 2 您擅长那些技能? 数据科学家所需具体技能,罗列如下: 1 数据分析技能 数据清洗 运用合适的统计知识和方法来分析数据 运用机器学习算
陆勤_数据人网
2018/02/28
7250
【技能】数据科学家所需技能
gsea或者gsva所需要的gmt文件
不得不说,数据资源真心丰富啊:The 32880 gene sets in the Molecular Signatures Database (MSigDB) are divided into 9 major collections, and several sub-collections.
生信技能树
2022/04/15
3.2K0
gsea或者gsva所需要的gmt文件
ChatGPT 的 AskYourPDF 插件所需链接如何获取?
目前 ChatGPT 主要有两款 PDF 对话插件,一个是 AskYourPDF 一个是 ChatWithPDF(需 ChatGPT Plus),他们都可以实现给一个公共的PDF 链接,然后进行持续对话,对读论文,阅读 PDF 格式的文档非常有用。
明明如月学长
2023/05/22
3.6K0
ChatGPT 的 AskYourPDF 插件所需链接如何获取?
高效编程所需要做的那点事
聊聊如果才能高效编程 计划(Plan) 所谓Plan,其实就是对应于编程中的设计阶段,当然,这里的Plan并不像设计那样重量级。它要求我们程序员在正式编程前至少要考虑一下下面的问题: 你这个程序,工具或是项目的目的,究竟是用来干什么的。你只有知道做什么,要达到什么样的目的 你这个程序,工具或是项目的目的,究竟是用来干什么的。你只有知道做什么,要达到什么样的目的,你才能做得对,做得好。 需要有什么样的功能。需要你给出来个功能列表。这样可以保证我们不会遗露了什么。准备好一些技术难题的前期调查
码神联盟
2018/04/02
5100
车载网络: OMNet++所需的组件支持
安装过程详见我的另两篇博客:Ubuntu: 安装 OMNeT++ 仿真工具、车载网络: OMNeT++安装CAN协议 。
JNingWei
2018/09/27
1.1K0
【Struts】配置Struts所需类库详细解析
在 Struts框架配置详情 中,谈到了使用Struts所必须的Jar文件。这里对使用到的Jar文件进行详细解析。
陈树义
2022/04/29
2910
【Struts】配置Struts所需类库详细解析
你所需要掌握的问题排查知识
由于业务应用 bug(本身或引入第三方库)、环境原因、硬件问题等原因,线上服务出现故障 / 问题几乎不可避免。例如,常见的现象包括请求超时、用户明显感受到系统发生卡顿等等。
测试开发技术
2020/01/17
1.4K0
你所需要掌握的问题排查知识
SSM整合所需的maven配置文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" x
说故事的五公子
2019/10/24
6750
点击加载更多

相似问题

缺少所需参数

14

Web所需参数

53

缺少所需参数

22

缺少所需参数

11

所需隐含参数

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档