@alakamve2022

Почему не работает from_dict(), disnake.py?

Почему не работает эта команда?
@Bot.slash_command(description="Отправить embed, по json")
async def embdjson(ctx, msg: str):
        print(msg)
        await ctx.send(embed=disnake.Embed.to_dict(msg))

Вот, что подаю в msg
{'footer': {'text': ''}, 'image': {'url': ''}, 'thumbnail': {'url': ''}, 'author': {'name': ''}, 'color': 16753920, 'type': 'rich', 'title': 'sas'}

Как исправить и почему не работает?
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
  1. to_dict возвращает словарь объекта-embed'а, для создания Embed'а из словаря используется Embed.from_dict
  2. Вы передаёте в функцию не словарь, а строку (msg: str). Встроенного конвертера, по крайней мере в discord.py для словарей нет.
    1. Если вы хотите создавать Embed'ы из JSONа - преобразуйте строку с JSON в словарь при помощи встроенной библиотеки.
    2. Если вы хотите создавать Embed'ы из Python-словарей - преобразуйте строку с словарём через ast.literal_eval.

  3. Нет никакого смысла передавать пустые параметры. Тип embed'а так-же не учитывается, так как напрямую передавать можно только rich Embed'ы. Остальные создаются на стороне самого Discord'а. Таким образом такой словарь/JSON будет иметь тот же смысл, что приведённый вами:
    {"color":16753920,"title":"sas"}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы