Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python的Discord中从SQLite表生成多行列表?_Python_Sqlite_Discord_Discord.py - Fatal编程技术网

如何在Python的Discord中从SQLite表生成多行列表?

如何在Python的Discord中从SQLite表生成多行列表?,python,sqlite,discord,discord.py,Python,Sqlite,Discord,Discord.py,我试图让bot将SQLite表中的值作为列表发送。以下是名为Employees的表格: emp|U id | emp|U名称| emp|U位置 emp|u 1 |简| emp|u pos1 emp|u 2 | | Jake | | emp|u pos2 以下是我的命令显示emp列表的功能: @bot.command() 异步def清空测试(ctx): 康涅狄格州: cursor.execute(“从员工中选择emp\U名称、emp\U位置、emp\U id”) emp_list=cursor.f

我试图让bot将SQLite表中的值作为列表发送。以下是名为Employees的表格:

emp|U id | emp|U名称| emp|U位置 emp|u 1 |简| emp|u pos1 emp|u 2 | | Jake | | emp|u pos2 以下是我的命令显示emp列表的功能:

@bot.command()
异步def清空测试(ctx):
康涅狄格州:
cursor.execute(“从员工中选择emp\U名称、emp\U位置、emp\U id”)
emp_list=cursor.fetchall()
对于范围(0)内的j:
列=[]
对于范围(0)中的i:
列+=emp_列表
列+=“\n”
emp_列表+=列
对于emp_列表中的列:
对于第列中的项目:
打印(项目,结束=“”)
打印()
等待ctx发送(emp_列表)
当它在控制台中打印时,效果非常好:

Jane emp_pos1 emp_1
Jake emp_pos2 emp_2
但这就是Discord在
ctx.send(emp\u列表)之后给出的输出:
[('Jane','emp_pos1',emp_1),('Jake','emp_pos2',emp_2)]

如何使其像在控制台中那样以不协调的方式发送?

当您从SQLite获取数据时,您将获得一个
元组
类型的数据。在本例中,您将得到一个元组列表

因此,首先,您需要获取列表中的每一项。您可以使用
for循环
来实现这一点

for emp_info in emp_list:
    print(emp_info)
简单地说,您打印了2名员工的信息

然后,您应该删除括号。有几种方法可以做到这一点。我会告诉你其中一种方法

您可以使用
string.join()
函数。您可以这样做:

对于emp\u列表中的emp\u信息:
打印(“,”.join(emp_信息))
然后,您可以将其编辑到代码中,如下所示:

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

谢谢你的回答。但是当我运行它时,它显示了一个错误,所以我将[[对于emp_列表中的emp_信息:wait ctx.send(','.join(emp_信息))]]更改为:[[对于emp_列表中的emp_信息:wait ctx.send(','.join(map(str,emp_信息))],并且工作正常。