如果有人能解释我在哪里出错了,那将是非常有帮助的,下面我提供了错误和代码。谢谢:)如果有人可以指导我解决问题,或者清楚地指出我出了错的地方,那将是很好的选择,我无法为我的生活弄清楚它的缺失之处以及为什么嵌入物缺失了值?
Ignoring exception in command ip:
Traceback (most recent call last):
File "C:\Users\\*ame\*AppData\Local\Programs\Python\Python38\lib\site-packages\discord\ext\commands\core.py", line 83, in wrapped
ret = await coro(\*rgs, \*kwargs)
File "C:\Users\\*ame\*Desktop\Sanitary SB\Sanitary.py", line 85, in ip
ctx.send(embed=em)
AttributeError: 'str' object has no attribute 'send'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\\*ame\*AppData\Local\Programs\Python\Python38\lib\site-packages\discord\ext\commands\bot.py", line 892, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\\*ame\*AppData\Local\Programs\Python\Python38\lib\site-packages\discord\ext\commands\core.py", line 797, in invoke
await injected(\*tx.args, \*ctx.kwargs)
File "C:\Users\\*ame\*AppData\Local\Programs\Python\Python38\lib\site-packages\discord\ext\commands\core.py", line 92, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'str' object has no attribute 'send'
@Sanitary.command()
async def ip(self, ctx, \* ipaddr: str = "1.3.3.7"):
r = requests.get(f'http://extreme-ip-lookup.com/json/{ipaddr}')
em = discord.Embed(color=0x00000)
geo = r.json()
fields = [
{'name': 'IP', 'value': geo['query']},
{'name': 'ipType', 'value': geo['ipType']},
{'name': 'Country', 'value': geo['country']},
{'name': 'City', 'value': geo['city']},
{'name': 'Continent', 'value': geo['continent']},
{'name': 'Country', 'value': geo['country']},
{'name': 'IPName', 'value': geo['ipName']},
{'name': 'ISP', 'value': geo['isp']},
{'name': 'Latitute', 'value': geo['lat']},
{'name': 'Longitude', 'value': geo['lon']},
{'name': 'Org', 'value': geo['org']},
{'name': 'Region', 'value': geo['region']},
{'name': 'Status', 'value': geo['status']},
]
for field in fields:
if field['value']:
em.add_field(name=field['name'], value=field['value'], inline=True)
return await ctx.send(embed=em)
\` \` \`
问题来源:stackoverflow
从命令函数参数中删除self
,这不在一个类中,所以ctx
实际上是给定的字符串,此外,由于discord.py中的函数完全不同并且已被分配,因此您应该删除*
。按命令中的空格顺序(如果使用的是discord.ext.commands
的话。)
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。