首页 > 解决方案 > 为什么 discord 不返回 COVID19 结果数据?

问题描述

我制作了一个机器人,它以嵌入的形式发送 COVID19 数据,包括确诊病例、死亡病例和康复病例,但是,机器人没有响应。我从名为https://api.covid19api.com/world/total的 API 获取数据,但代码似乎不起作用。这是 API 代码(文件路径为 ./apis/covid19api.py):

import requests
import json

def covid19():
  covid19request = requests.get("https://api.covid19api.com/world/total")
  covid19data = json.load(covid19request)
  return covid19data

这是没有响应的代码:

import discord
from discord.ext import commands
import apis.covid19api

class covid19(commands.Cog):
  def _init_(self, client):
    self.client = client
  
  @commands.command(aliases = ["covid", "coronavirus", "coronavirus19", "coronavirusinfectiousdisease19", "coronavirusinfectiousdisease"])
  async def covid19(self, ctx):
    # To convert it to an embed
    for data in apis.covid19api:
      if len(data) != 0:
        em = discord.Embed(title = "Global Statistics for COVID-19")
        em.add_field(name = "Confirmed", value = data["TotalConfirmed"], inline = True)
        em.add_field(name = "Deaths", value = data["TotalDeaths"], inline = True)
        em.add_field(name = "Recovered", value = data["TotalRecovered"], inline = True)
        await ctx.send(embed = em)

def setup(client):
    client.add_cog(covid19(client))

标签: pythonjsonpython-requestsdiscord.py

解决方案


我不知道这是否能完全解决问题,但您可以尝试以下方法:您可以使用请求中的 json() 方法,而不是尝试从 json.load() 方法获取 JSON 数据库,因为我认为 json.load() 需要一个文本文件,而不是来自请求的 Response 类的实例:

covid19data = covid19requst.json()

对于不和谐部分,我认为你既没有得到错误也没有输出的原因是你的函数输出的结果,实际上是返回输出长度为0的数据。

我希望这能解决问题。如果不和谐部分有问题,我希望其他人会介入并尝试帮助您。


推荐阅读