如何基于Python中的列表元素创建MySQL表?

如何基于Python中的列表元素创建MySQL表?,python,mysql,Python,Mysql,我有一个字符串列表,我想用它作为列名。我正在使用pymysql 我知道另一个类似的问题,但我没有使用这里提到的软件包 我怎么能做到这一点呢?在我的脑海中,我认为使用jinja可能会奏效。您可以创建一个模板,并将值作为变量传入,呈现该模板,然后使用生成的字符串作为语句。还可以更改下面的示例,以便您也可以传入数据类型。需要考虑的是清理列表中的字符串,以确保它们是安全的,因为它们来自互联网。 from jinja2 import Template a= ['abc', 'efg', 'hij', '

我有一个字符串列表,我想用它作为列名。我正在使用pymysql

我知道另一个类似的问题,但我没有使用这里提到的软件包


我怎么能做到这一点呢?

在我的脑海中,我认为使用jinja可能会奏效。您可以创建一个模板,并将值作为变量传入,呈现该模板,然后使用生成的字符串作为语句。还可以更改下面的示例,以便您也可以传入数据类型。需要考虑的是清理列表中的字符串,以确保它们是安全的,因为它们来自互联网。

from jinja2 import Template

a= ['abc', 'efg', 'hij', 'klm']

table_syntax = """
CREATE TABLE `{{ table_name }}` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  {% for column in columns %}
    `{{ column }}` varchar(255) NOT NULL {{ "," if not loop.last }}
  {% endfor %}
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
AUTO_INCREMENT=1;
"""

template = Template(table_syntax)

print(template.render(table_name="example", columns=a))

字符串列表来自哪里?用户输入的数据?我正在抓取一个网站,从HTML中获取字符串,然后将它们添加到列表中