如何解决从 json 响应中获取图像
我正在制作一个与 last.fm API 通信的 discord.js 机器人。我想让我的机器人在嵌入中显示请求中的图像,但它只给我不同大小的结果。其他一切都很好,我只需要图像方面的帮助。非常感谢您的帮助:)
def to_float(x):
if type(x) != str:
return x
elif x[-1] == "k":
return float(x.rstrip("k")) * 1000
else:
return float(x)
这是json响应
axios
.get(request_url)
.then(res => {
if (res.data.message) {
message.channel.send('User not found')
return
}
const latest_track = res.data.recenttracks.track[0]
if (!latest_track) {
e.message.channel.send('User not found')
return
}
const {
name,artist: { '#text': artist },album: {'#text': album},image: {'size': large,'#text' : image},} = latest_track
const embed = new MessageEmbed()
.setColor('#0099ff')
.setTitle(`?Now playing- ${fmname}`)
.setDescription(` **${name} - ${artist}** on ${album}`)
.setimage(image)
message.channel.send(embed)
解决方法
在 JSON 响应中,您会注意到为您提供了 Array 个图像。对于数组中的每个 JSON 对象,都有一个大小和一个图像 URL。如果你想访问图像的“小”版本,你会要求数组中的第一个元素。计算机从 0 开始,而不是从 1 开始,因此您可以执行以下操作:
// Replace <JSON> with whatever variable represents your JSON
.setImage(<JSON>.image[0]['#text'])
如果您需要中等,只需将 0 替换为 1。要了解有关数组的更多信息,请查看 Array article written by Mozilla。
感谢@Elitezen,因为他们在评论中指出了这一点
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。