gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 09:51:47 27 4
gpt4 key购买 nike

我正在尝试使用 python 在 mariadb 中创建一个表。我将所有列名称存储在列表中,如下所示。

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

这只是示例列表。实际列表中有 200 个项目。我正在尝试使用上述 collist 元素作为列来创建一个表,并且列的数据类型为 VARCHAR。

这是我用来创建表格的代码

对于 collist 中的 p:
cur.execute('如果不存在则创建表 table1 ({} VARCHAR(45))'.format(p)

上面的代码正在执行,但只有列表的第一个元素被添加为表中的列,我看不到其余的元素。如果我能得到这方面的帮助,我将不胜感激。

最佳答案

您可以将字符串分为 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 注入(inject)的影响,因为您只是格式化要执行的未知字符串。我假设列名称列表是您的程序的内部。

关于python - 使用 Python 中的列名列表在 MariaDB 中创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54658087/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com