微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 json 响应中获取图像

如何解决从 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 举报,一经查实,本站将立刻删除。