如何将JSON对象转换为图像对象?
我曾多次尝试查找此解决方案,但都不起作用。尝试创建使用JSON存储系统的discord bot。这个机器人是用python制作的。我将展示我尝试了多种方法从JSON存储中显示图像的代码。甚至Utf-8和16编码也不起作用。所以我现在一直在尝试任何事情。就像这样->如何将JSON对象转换为图像对象?,json,image,discord.py,Json,Image,Discord.py,我曾多次尝试查找此解决方案,但都不起作用。尝试创建使用JSON存储系统的discord bot。这个机器人是用python制作的。我将展示我尝试了多种方法从JSON存储中显示图像的代码。甚至Utf-8和16编码也不起作用。所以我现在一直在尝试任何事情。就像这样-> { "id": 1, "Name": "bulbasaur", "Image": "https://i.imgur.com/MOQHxZGg.png" } JSON above Python below @comman
{
"id": 1,
"Name": "bulbasaur",
"Image": "https://i.imgur.com/MOQHxZGg.png"
}
JSON above
Python below
@commands.command(name='image_test')
async def image(self, context, arg):
with open('image.json') as image:
p = json.load(image)
p['Name'] = arg
#print(p['Name'])
#print(p['Image'])
#with urllib2.urlopen(p['Image']) as i:
#data = i.read().decode('ISO-8859-1')
embed = discord.Embed()
embed.title = 'test image'
embed.set_image(url=requests.get(p['Image']).url)
await context.channel.send(embed=embed)
将JSON对象加载到python中时,其行为与字典完全相同,其值可以通过键访问: mydict={“foo”:“bar”} >>>mydict[“foo”] 酒吧 嵌入的图像完全依赖于指向源图像的字符串中的URL。您已经将图像的URL存储在json中,因此只需使用正确的键(
“image”
)访问其嵌入的URL:
@commands.command(name='image\u test')
异步def映像(自身、上下文、参数):
以open('image.json')作为图像:
p=json.load(图像)
embed=discord.embed()
embed.title='测试图像'
embed.set_image(url=p['image'])
等待context.send(嵌入=嵌入)#编辑为使用context.send()
作为旁注,我注意到的一件事是您使用了context.channel.send()
Context
对象继承自abc.Messageable
,这意味着您可以直接调用send()
corroutine向频道发送消息
参考文献: