簡體   English   中英

如何從 Python 上的 Discord 中的 SQLite 表制作多行列表?

[英]How can I make the multi-line list from SQLite table in Discord on Python?

我試圖讓機器人將 SQLite 表中的值作為列表發送。 這是名為Employees的表:

emp_id || emp_name || emp_position

emp_1 || 簡|| emp_pos1

emp_2 || 傑克|| emp_pos2

這是我的命令顯示 emp 列表的功能:

@bot.command()
async def EmpTest(ctx):

    with conn:
        cursor.execute("SELECT emp_name, emp_position, emp_id FROM Employees")
        emp_list = cursor.fetchall()

    for j in range(0):
        column = []
        for i in range(0):
            column += emp_list
        column += "\n"
        emp_list += column
    for column in emp_list:
       for item in column:
           print(item, end=" ")
       print()
    await ctx.send(emp_list)

在控制台中打印時它工作得很好:

Jane emp_pos1 emp_1
Jake emp_pos2 emp_2

但這就是 Discord 在ctx.send(emp_list):之后給出的輸出ctx.send(emp_list): [('Jane', 'emp_pos1', emp_1), ('Jake', 'emp_pos2', emp_2)]我怎樣才能讓它像 Discord 一樣發送在控制台?

當您從SQLite獲取數據時,您會得到一個tuple類型的數據。 在這種情況下,您將獲得一個元組列表。

因此,首先,您需要獲取列表中的每一項。 你可以用for loop來做到這一點。

for emp_info in emp_list:
    print(emp_info)

簡單地說,您打印了 2 位員工的信息。

然后,您應該刪除括號。 有幾種方法可以做到這一點。 我將向您展示其中一種方法。

您可以使用string.join()函數。 你可以這樣做:

for emp_info in emp_list:
    print(', '.join(emp_info))

然后你可以像這樣編輯你的代碼:

for emp_info in emp_list:
    await ctx.send(', '.join(emp_info))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM