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 应按预期执行。检查不协调嵌入。检查不一致嵌入。