python - 为什么 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))
解决方案
我不知道这是否能完全解决问题,但您可以尝试以下方法:您可以使用请求中的 json() 方法,而不是尝试从 json.load() 方法获取 JSON 数据库,因为我认为 json.load() 需要一个文本文件,而不是来自请求的 Response 类的实例:
covid19data = covid19requst.json()
对于不和谐部分,我认为你既没有得到错误也没有输出的原因是你的函数输出的结果,实际上是返回输出长度为0的数据。
我希望这能解决问题。如果不和谐部分有问题,我希望其他人会介入并尝试帮助您。
推荐阅读
- core-data - 核心数据谓词——有什么好处?
- c - C 标准库中的头文件可以包含另一个头文件吗?
- amazon-web-services - 使用 AWS cognito 进行匿名身份验证
- javascript - JS React在字符串中设置变量
- c - 按 8x8 块分割 BMP 图像
- ocaml - OCaml 崩溃时缺少信息
- ruby-on-rails - 如何应对 webpacker 弃用
- python - 当您事先知道某些输入会出现问题时,使用 try/except 块来检查函数是否可以安全运行是一种好习惯吗?
- xamarin.forms - 使用自定义标题视图更改 ContentPage 的内容
- spring-boot - 带有 Jakarta Validation Api 的 SpringBoot 未使用 @Valid Annotation 进行验证