在MariaDB中使用Python中的列名列表创建表

2024-09-29 23:21:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python在mariadb中创建一个表。我将所有列名存储在一个列表中,如下所示。你知道吗

collist = ['RR', 'ABPm', 'ABPs', 'ABPd', 'HR', 'SPO']

这只是样本清单。实际列表中有200项。我试图创建一个表,使用上面的collist元素作为列,列的数据类型是VARCHAR。你知道吗

这是我用来创建表的代码

for p in collist: cur.execute('CREATE TABLE IF NOT EXISTS table1 ({} VARCHAR(45))'.format(p)

上面的代码正在执行,但只有列表的第一个元素作为列添加到表中,我看不到其余的元素。如果能帮上忙我会很感激的。你知道吗


Tags: 代码元素列表rrhr数据类型样本varchar
1条回答
网友
1楼 · 发布于 2024-09-29 23:21:20

您可以将字符串分为3部分构建,然后将它们.join()组合在一起。中间部分是列定义,连接原始列表中的每个项。这看起来并不是特别健康;无论是列的数量还是所有内容都是VARCHAR(45),但这是您的决定:

collist = ['RR', 'ABPm', 'ABPs', 'ABPd', 'HR', 'SPO']

query = ''.join(["(CREATE TABLE IF NOT EXISTS table1 ",
                ' VARCHAR(45), '.join(collist),
                ' VARCHAR(45))'])

因为我们使用了join,所以需要分别指定最后一个列类型(列表中的第三项)来正确关闭查询。你知道吗

注意:如果输入数据来自用户输入,那么这很容易受到SQL注入的影响,因为您只是在中格式化要执行的未知字符串。我假设列名列表是程序内部的。你知道吗

相关问题 更多 >

    热门问题