Python 如何在discord.py中以表格形式显示数据?

Python 如何在discord.py中以表格形式显示数据?,python,discord,discord.py,Python,Discord,Discord.py,您好,我正在创建一个机器人,使积分表/排行榜,下面是代码,它的工作非常好 def check(ctx): return lambda m: m.author == ctx.author and m.channel == ctx.channel async def get_input_of_type(func, ctx): while True: try: msg = await bot.wait_for('message', check

您好,我正在创建一个机器人,使积分表/排行榜,下面是代码,它的工作非常好

def check(ctx):
    return lambda m: m.author == ctx.author and m.channel == ctx.channel


async def get_input_of_type(func, ctx):
    while True:
        try:
            msg = await bot.wait_for('message', check=check(ctx))
            return func(msg.content)
        except ValueError:
            continue

@bot.command()
async def start(ctx):
    await ctx.send("How many total teams are there?")
    t = await get_input_of_type(int, ctx)
    embed = discord.Embed(title=f"__**{ctx.guild.name} Results:**__", color=0x03f8fc,timestamp= ctx.message.created_at)
    
    lst = []
    
    for i in range(t):
        await ctx.send(f"Enter team {i+1} name :")
        teamname = await get_input_of_type(str, ctx)
        await ctx.send("How many kills did they get?")
        firstnum = await get_input_of_type(int, ctx)
        await ctx.send("How much Position points did they score?")
        secondnum = await get_input_of_type(int, ctx)
        lst.append((teamname, firstnum, secondnum))  # append 
        
    lstSorted = sorted(lst, key = lambda x: int(x[1]) + int(x[2],),reverse=True) # sort   
    for teamname, firstnum, secondnum in lstSorted:  # process embed
        embed.add_field(name=f'**{teamname}**', value=f'Kills: {firstnum}\nPosition Pt: {secondnum}\nTotal Pt: {firstnum+secondnum}',inline=True)

    await ctx.send(embed=embed)  
结果如下所示:

但是我想知道,我能做些什么来得到表格形式的结果吗,比如球队名称,位置,积分,总积分,杀戮积分,写成一行,然后把结果打印在下面,我真的不知道,如果这让你明白我想说的话

下图将帮助您理解

所以我希望结果的格式如下。我想不出一个办法,如果你能回答这个问题,请这样做,那将是一个很大的帮助!
谢谢。

这可能是最接近您的:

embed.add_field(name=f'**{teamname}**', value=f'> Kills: {firstnum}\n> Position Pt: {secondnum}\n> Total Pt: {firstnum+secondnum}',inline=False)
代码将输出如下内容:


我已将inline设置为False,并将>字符添加到每个统计信息中。

这可能是最接近的:

embed.add_field(name=f'**{teamname}**', value=f'> Kills: {firstnum}\n> Position Pt: {secondnum}\n> Total Pt: {firstnum+secondnum}',inline=False)
代码将输出如下内容:


我已将inline设置为False,并将>字符添加到每个统计信息中。

好的,有一种方法可以做到这一点,但是,您将无法使用字段名称作为团队名称!

@bot.commandname='test' 异步def testcontext:命令。上下文: 示例数据集在这里! 数据集= 等级,团队,杀戮,位置,总数。。。 一,一,二,四,六,, 二,二,三,三,六,, 3,'C',4,2,6 假设我们已经整理好了! s=['Rank Team杀死PosPts.Total'] 这需要根据预期的值范围进行调整或动态计算 对于数据集中的数据: s、 追加“”。为数据中的项加入[stritem.center5'。] 把分数排成一行 d='`+'\n'。加入+'`' 将所有线路连接到一起! embed=discord.Embedtitle='商结果',description=d wait context.sendembed=embed
这应该如预期的那样。

好的,有一种方法可以做到这一点,但是,您将无法使用字段名称作为团队名称!

@bot.commandname='test' 异步def testcontext:命令。上下文: 示例数据集在这里! 数据集= 等级,团队,杀戮,位置,总数。。。 一,一,二,四,六,, 二,二,三,三,六,, 3,'C',4,2,6 假设我们已经整理好了! s=['Rank Team杀死PosPts.Total'] 这需要根据预期的值范围进行调整或动态计算 对于数据集中的数据: s、 追加“”。为数据中的项加入[stritem.center5'。] 把分数排成一行 d='`+'\n'。加入+'`' 将所有线路连接到一起! embed=discord.Embedtitle='商结果',description=d wait context.sendembed=embed 应按预期执行。

检查不协调嵌入。检查不一致嵌入。