如何在discord.py的Embed中把JSON内所有昵称放在单标题对应的同一个值中
代码修改方案
你当前代码的问题是在循环内重复调用add_field(),导致每个昵称都会生成独立的Embed字段,只需要提前拼接好所有昵称内容,再一次性添加字段即可。
修改后的完整代码如下:
@Bot.command() async def nicknames(ctx, *, message:str=None): embed = discord.Embed(title=f"Profile Details", description="nicknames", color=discord.Color.green()) uuid = MojangAPI.get_uuid(f"{message}") profile = MojangAPI.get_profile(uuid) people = requests.get('https://api.mojang.com/user/profiles/' + uuid + '/names' ) people_json = people.json() # 提取所有昵称存入列表 nickname_list = [item["name"] for item in people_json] # 用换行符拼接所有昵称,也可替换为顿号、空格等其他分隔符调整展示效果 all_nicknames = "\n".join(nickname_list) # 仅添加一次字段 embed.add_field(name="nicknames", value=all_nicknames, inline=False) await ctx.send(embed=embed)
补充说明
Discord单个Embed字段的value最多支持1024字符,如果查询到的昵称数量过多超出长度限制,可以自行拆分多个字段存储,或者调整为滚动展示、截断展示等处理逻辑。
内容的提问来源于stack exchange,提问作者Estol
相关产品推荐
相关产品推荐

