ошибки нет, но я получаю «ничего не найдено» для тега, который, как я знаю, существует

#python #discord #discord.py

Вопрос:

каждый раз, когда я пытаюсь использовать команду с тегом, который, как я точно знаю, является тегом, я получаю «ничего не найдено»…

я новичок в кодировании, что я делаю не так

 @bot.command()
async def cough(ctx, *, tags: str):
      await ctx.channel.trigger_typing()
      tags = strip_global_mentions(tags, ctx)
      try:
        data = requests.get(
            "https://lolibooru.moe/index.php?page=dapiamp;s=postamp;q=indexamp;json=1amp;limit={}amp;tags={}"
            .format(limit, tags),
            headers=header).json()
      except json.JSONDecodeError:
          await ctx.send("nothing found")
          return

      count = len(data)
      if count == 0:
          await ctx.send("nothing found")
          return
      image_count = 4
      if count < 4:
          image_count = count
      images = []
      for i in range(image_count):
          image = data[random.randint(0, count)]
          images.append("http://lolibooru.moe/images/{}/{}".format(
              image["directory"], image["image"]))
    #await ctx.send("nsfw.results", ctx).format(image_count, count, tags, "n".join(images))
      await ctx.send(images[0])
 

Комментарии:

1. Я почему-то не могу получить доступ к сайту, которым вы пытаетесь воспользоваться. Кажется, что booru.moe этого больше не существует.

Ответ №1:

Вы пытаетесь позвонить https://lolibooru.moe/index.php?... , но в документации API никто не говорит о файлах php. Если вам нужен ответ json, используйте https://lolibooru.moe/index.json?...

Документы API Lolibooru.moe

Он указан в разделе Основы пункта

Пример: https://lolibooru.moe/post/index.json?page=dapiamp;s=postamp;q=indexamp;json=1amp;limit=10amp;tags=azur_lane

Комментарии:

1. спасибо, что это сработало, как бы то ни было, теперь я получаю ошибку discord.ext.commands.errors.CommandInvokeError: Command raised an exception: KeyError: 'directory'

2. @KB256 это означает directory , что в вашем словаре нет ключа. Если у вас есть новый вопрос, задайте его в новом посте, а не в комментариях к ответу.