【问题标题】:Discord Python Bot Multiple Value in embed field嵌入字段中的 Discord Python Bot 多值
【发布时间】:2021-04-26 13:18:29
【问题描述】:

所以我有一个连接到 sqlite 数据库的不和谐机器人(使用 python),我想使用嵌入显示数据。数据包含我每天的动漫时间表。

代码如下:

@commands.command(aliases=['Schedule'])
    async def schedule(self, ctx, day = None):
        if (day==None):
            conn = sqlite3.connect('./cogs/animelist.db')
            cursor1 = conn.execute("SELECT name, status_eps from Animelist where day = 'monday'")
            cursor2 = conn.execute("SELECT name, status_eps from Animelist where day = 'tuesday'")
            cursor3 = conn.execute("SELECT name, status_eps from Animelist where day = 'wednesday'")
            cursor4 = conn.execute("SELECT name, status_eps from Animelist where day = 'thursday'")
            cursor5 = conn.execute("SELECT name, status_eps from Animelist where day = 'friday'")
            cursor6 = conn.execute("SELECT name, status_eps from Animelist where day = 'saturday'")
            cursor7 = conn.execute("SELECT name, status_eps from Animelist where day = 'sunday'")

            embed = discord.Embed(
                title=f'Anime Schedule:',
                colour=discord.Color.blue())

            for row in cursor1:
                embed.add_field(name=f'Monday', value=f'{row[0]} (Eps : {row[1]})', inline=False)
            for row in cursor2:
                embed.add_field(name=f'Tuesday', value=f'{row[0]} (Eps : {row[1]})', inline=False)
            for row in cursor3:
                embed.add_field(name=f'Wednesday', value=f'{row[0]} (Eps : {row[1]})', inline=False)
            for row in cursor4:
                embed.add_field(name=f'Thursday', value=f'{row[0]} (Eps : {row[1]})', inline=False)
            for row in cursor5:
                embed.add_field(name=f'Friday', value=f'{row[0]} (Eps : {row[1]})', inline=False)
            for row in cursor6:
                embed.add_field(name=f'Saturday', value=f'{row[0]} (Eps : {row[1]})', inline=False)
            for row in cursor7:
                embed.add_field(name=f'Sunday',value=f'{row[0]} (Eps : {row[1]})',inline=False)
            await ctx.send(embed=embed)
            conn.close()

问题是这样的 Discord Embed

有 2 个“星期日”,这不是我想要的。我想要的是(例如周日),“值”将显示“aot(eps :)”\n'wataten(eps :)' 这样结果就会显示这个:

Sunday :
aot (eps : )
wataten (eps : )

我试着写这个

Value=f'{for row in cursor7:
                 {row[0]}\n}'

这样对于光标 7 中的每一行,它都会自动创建一个新行。但我知道它不会工作。 有人可以帮帮我吗?

【问题讨论】:

    标签: python discord discord.py discord.py-rewrite python-3.9


    【解决方案1】:

    对于你的例子,你可以这样做

    sunday_episodes = "\n".join([f"{row[0]} (Eps : {row[1]})" for row in cursor7])
    

    见:How would you make a comma-separated string from a list of strings?

    【讨论】:

    • 应该是f'{row[0]} (Eps : {row[1]})' 而不仅仅是row[1]。 OP 还提到他们想使用换行符,所以改用'\n'.join(...)
    • 非常感谢您的帮助 effprime 和 ZeroKnight ,它实际上并没有直接帮助,但我已经通过创建一个新数据库设法解决了这个问题。当然,通过使用上面的代码。再次感谢您
    猜你喜欢
    • 2021-11-06
    • 1970-01-01
    • 2020-08-02
    • 2021-08-12
    • 2021-07-03
    • 2019-03-23
    • 2019-04-19
    • 1970-01-01
    • 2020-06-10
    相关资源
    最近更新 更多