@Mem1388

Как построить Embed из JSON данных?

Пытаюсь сделать команду, которая будет принимать JSON данные, а из них строить Embed.
Допустим, человек отправляет такую строку:
{"plainText": "Testing", "fields": [{"name": "Test-1", "value": "Value-1", "inline": false}, {"name": "Test-2", "value": "Value-2", "inline": true}], "color": 0}

И должен отправиться Embed:
emb = discord.Embed(color = 0x00000)
emb.add_field(name = "Test-1", value = "Value-1", inline = False)
emb.add_field(name = "Test-2", value = "Value-2", inline = True)
await ctx.send(plainText, embed = emb)

Как такое можно провернуть?
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
retUrn3d
@retUrn3d
Пользователь, просто пользователь...
Используйте метод from_dict()
Подробнее можно почитать тут
emb_json = json.load(embed_file)
emb = discord.Embed.from_dict(emb_json)
        await ctx.send(embed=emb)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@dreameddd
Берешь нужные данные из JSON данных и подставляешь в emb.
test1 = ... (берешь данные value-1)

По итогу, чтобы получилось:
emb.add_failed(name = "Test-1", value = test1, inline = False)
Ответ написан
WolfInChains
@WolfInChains
my_json = {"plainText": "Testing", "fields": [{"name": "Test-1", "value": "Value-1", "inline": false}, {"name": "Test-2", "value": "Value-2", "inline": true}], "color": 0}

emb = discord.Embed(color = 0x00000)
emb.add_field(name = my_json["fields"][0]["name"], value = my_json["fields"][0]["value"], inline = my_json["fields"][0]["inline"])
emb.add_field(name = my_json["fields"][1]["name"], value = my_json["fields"][1]["value"], inline = my_json["fields"][1]["inline"])
await ctx.send(my_json["plainText"], embed = emb)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
15 июн. 2021, в 15:18
1500 руб./за проект
15 июн. 2021, в 15:10
10000 руб./за проект
15 июн. 2021, в 15:05
10000 руб./за проект