使用Python mysql连接器将Mysql coulmn名称存储在数组中

时间:2017-12-24 15:51:18

标签: python mysql arrays mysql-connector-python

我对mysql很新,就像操纵数据库本身一样。我成功地将新线存储在一张桌子中,但我的下一步努力会更复杂一些。

我想从现有的mysql数据库中获取列名,并将它们保存到python中的数组中。我正在使用官方的mysql连接器。

我想我可以通过information_schema.columns命令实现这一点,但我不知道如何构建查询并将信息存储在数组中。这将是大约100-200列,所以性能可能会成为一个问题,所以我认为只是为每一列迭代我的方式是明智的。

使用连接器将代码注入mysql的基本代码是:

def insert(data):
    query = "INSERT INTO templog(data) " \
        "VALUES(%s,%s,%s,%s,%s)"
    args = (data)

try:
    db_config = read_db_config()
    conn = MySQLConnection(db_config)

    cursor = conn.cursor()
    cursor.execute(query, args)

    #if cursor.lastrowid:
     #   print('last insert id', cursor.lastrowid)
    #else:
     #   print('last insert id not found')

    conn.commit()

    cursor.close()
    conn.close()
except Error as error:
    print(error)

如上所述,为了从sql server获取数据,需要修改上面的代码。提前谢谢!

1 个答案:

答案 0 :(得分:0)

感谢您的帮助!

将此作为工作代码:

def GetNames(web_data, counter):
#get all names from the database
connection = create_engine('mysql+pymysql://user:pwd@server:3306/db').connect()
result = connection.execute('select * from price_usd')
a = 0
sql_matrix = [0 for x in range(counter + 1)]
for v in result:
    while a == 0:
        for column, value in v.items():
            a = a + 1
            if a > 1: 
                sql_matrix[a] = str(('{0}'.format(column)))

这将从现有的sql数据库中获取所有列名称