如何在Python中将SQL数据库的字段名转换为列表

3 投票
1 回答
3454 浏览
提问于 2025-04-16 00:35

这是我目前写的代码:

from ConfigParser import *
import MySQLdb

configuration = ConfigParser()
configuration.read('someconfigfile.conf')
    db = MySQLdb.connect(
    host = configuration.get('DATABASE', 'MYSQL_HOST'),
    user = configuration.get('DATABASE', 'MYSQL_USER'),
    passwd = configuration.get('DATABASE', 'MYSQL_PASS'),
    db = configuration.get('DATABASE', 'MYSQL_DB'),
    port = configuration.getint('DATABASE', 'MYSQL_PORT'),
    ssl = {
        'ca':   configuration.get('SSL_SETTINGS', 'SSL_CA'),
        'cert': configuration.get('SSL_SETTINGS', 'SSL_CERT'),
        'key':  configuration.get('SSL_SETTINGS', 'SSL_KEY')
            },
    )
cursor = db.cursor()
sql = "SELECT column_name FROM information_schema.columns WHERE table_name='met';"
cursor.execute(sql)
list = cursor.fetchall()

print list

这是打印出来的内容:

(('field',), ('field',), ('field',), ('field',), ('field',), ('field',), ('field',), ('field',), ('field',), ('field',), ('field',), ('field',), ('field',), ('field',), ('pk_wind_spd2',), ('field',))

我得到的是一个元组,而不是一个列表。我更希望得到一个字符串的列表。

1 个回答

2

不要覆盖内置的名称(比如列表),可以改成:

alist = cursor.fetchall()

这个生成器表达式可以帮你获取列名,并把它们放进一个元组里:

tuple(i[0] for i in alist)

撰写回答