【问题标题】:Why doesn't discord return the COVID19 result data?为什么 discord 不返回 COVID19 结果数据?
【发布时间】:2021-08-23 17:59:40
【问题描述】:

我制作了一个机器人,它以嵌入的形式发送 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))

【问题讨论】:

  • "你能帮我找出错误吗?"不,StackOverflow 不是一个调试站点。请看how to ask
  • 乍一看,我已经在您的第 5 行代码中看到了一个错误:requests.get 返回一个 Response 对象。试试covid19data = covid19request.json()。您的其余代码中可能存在更多问题。

标签: python json python-requests discord.py


【解决方案1】:

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

covid19data = covid19requst.json()

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

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

【讨论】:

  • 我换了还是不行,谢谢大家的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多