尝试获取url结尾时出现不一致的Py AttributeError

2024-05-14 17:23:20 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我保存一个用户pfp的代码。当我厌倦了只保存为png时,我决定添加一个检查,如果头像URL以gif结尾,那么它只是抛出一个错误“'Asset'对象没有属性'endswith'”。我做错了什么

@bot.command()
@commands.check(Owner)
async def avs(ctx, member: discord.Member = None):
    member = ctx.author if not member else member
    if member.avatar_url.endswith('.gif'):
        await member.avatar_url_as(format="gif").save(fp=f"{member}.gif")
        await ctx.send(f"Saved pfp of {member}")
    else:
        await member.avatar_url_as(format="png").save(fp=f"{member}.png")
        await ctx.send(f"Saved pfp of {member}")

Tags: formaturlifpngsaveasawaitgif
2条回答

Member.avatar_url返回一个discord.Asset实例,您可以将其转换为字符串以获取资产的URL

if str(member.avatar_url).endswith('.gif'):

参考资料:

我认为您首先需要将url转换为字符串

@bot.command()
@commands.check(Owner)
async def avs(ctx, member: discord.Member = None):
    member = ctx.author if not member else member
    if str(member.avatar_url).endswith('.gif'):    # Here card the url to str
        await member.avatar_url_as(format="gif").save(fp=f"{member}.gif")
        await ctx.send(f"Saved pfp of {member}")
    else:
        await member.avatar_url_as(format="png").save(fp=f"{member}.png")
        await ctx.send(f"Saved pfp of {member}")

相关问题 更多 >

    热门问题