Python 如何使用变量设置不一致嵌入消息的图像?

Python 如何使用变量设置不一致嵌入消息的图像?,python,python-3.x,beautifulsoup,discord,discord.py,Python,Python 3.x,Beautifulsoup,Discord,Discord.py,所以我在一个变量中有我的图像url。它需要在变量中,因为每次运行命令时它都会更改。不幸的是,文档中说set_image需要一个字符串url,尝试使用变量会抛出400错误。然后我尝试用链接发送一条简单的send_消息,但是Discord没有将图像下载到聊天中,因为它不是字符串。有人知道怎么避开这件事吗?谢谢大家! embed.set_image(url = exampleVariable) #throws error 如果你想用最简单的方式做事,只需发送图片url就行了。唯一的问题是它会同时发送

所以我在一个变量中有我的图像url。它需要在变量中,因为每次运行命令时它都会更改。不幸的是,文档中说set_image需要一个字符串url,尝试使用变量会抛出400错误。然后我尝试用链接发送一条简单的send_消息,但是Discord没有将图像下载到聊天中,因为它不是字符串。有人知道怎么避开这件事吗?谢谢大家!

embed.set_image(url = exampleVariable) #throws error

如果你想用最简单的方式做事,只需发送图片url就行了。唯一的问题是它会同时发送url和图像

如果要获得更好的结果,必须在以下情况下进行:

如果您使用的是重写分支,则需要执行以下操作

imageURL = "image url"
embed = discord.Embed()
embed.set_image(url=imageURL)
await ctx.send(embed = embed)
imageURL = "image url"
embed = discord.Embed()
embed.set_image(url=imageURL)
await bot.send_message(ctx.message.channel, embed = embed)
如果您使用的是异步分支,则需要执行以下操作

imageURL = "image url"
embed = discord.Embed()
embed.set_image(url=imageURL)
await ctx.send(embed = embed)
imageURL = "image url"
embed = discord.Embed()
embed.set_image(url=imageURL)
await bot.send_message(ctx.message.channel, embed = embed)
要确定您拥有哪个分支,您需要执行
打印(discord.\uuuuu version\uuuuu)
。如果打印了
1.0.0a
,则有重写分支。如果打印了
0.16.2
,则您有异步分支

如果您的bot无法将嵌入发送到通道,将引发异常(discord.forbidded)

将嵌入发送到通道非常简单,如下所示:

# rewrite
await ctx.send(embed=embed_object)

# async
await bot.send_message(CHANNEL_ID, embed=embed_object)
否则,在设置嵌入的图像时,必须传入字符串URL (见文件和附件)

URL必须是字符串,如文档中所述“仅支持HTTPS”

传递变量并不重要,因为变量只是对对象的引用,在本例中是字符串。 如果调用正确,discord将不会显示无效的图像URL。因此,您可能需要再次检查URL

否则,像这样的代码应该可以工作

(假设重写)

(假设异步)


我有异步分支。我的问题是imageURL等于另一个变量,而不是原始字符串。我的代码看起来像:
response=requests.get(“https://dog.ceo/api/breeds/image/random)soupRaw=beautifulsou(response.text,'lxml')soupBackend=str(soupRaw).split(“message”)soup2=soupBackend[1]soup3=soup2[3:]soup3[:-20]embed=discord.embed(title=“这是你的狗!”,description=“希望你喜欢”,color=0x5810ea)embed.set_image(url=soup)wait bot.send_message(message.channel,embed=embed)
有什么办法可以解决这个问题吗?@qspitzwer忘了tag@MarkW,问题是url包含的。你将需要删除这些链接之前,将工作。这可以通过for循环和if语句来实现,但是如果要嵌入的变量是另一个变量,则可能有更好的方法<代码>请求。获取(“https://dog.ceo/api/breeds/image/randomsoup2=soupBackend[1]soup3=soup2[3:]soup3=soup3[:-20]embed=discord.embed(title=“这是你的狗!”,description=“希望你喜欢”,color=0x5810ea)embed.set_image(url=soup)等待bot.send_message(message.channel,embed=embed)我能用什么方法解决这个问题?我想要的纠结在这个页面上,我需要删除它周围的所有东西@对于初学者,您可以停止在注释中发布原始代码,而使用gist、hastebin或pastebin