python

时间:2017-09-30 03:04:45

标签: python mysql

我需要将csv中的列值更新为mysql数据库,csv值对于一个文件是动态的,可能是10列,而对于其他文件,它可能是5列。

我在python中的理解我们需要使用list也是前面提到的这个问题类似于我的要求但是这里的值是静态的所以它可以预定义在我的情况下是动态需要一个解决方案在VALUES下有%% s要根据我的列值动态地相乘。

MySQL Dynamic Query Statement in Python

   ds_list=['name','id','class','chapter','MTH','YEAR']

   vl_list=['xxxxx','978000048','x-grade','Science',mar,2017]

   sql = 'INSERT INTO ann1 (%s) VALUES (%%s, %%s, %%s, %%s, %%s, %%s)' %    ','.join(ds_list)

   cur.execute(sql, vl_list)

   conn.commit()

1 个答案:

答案 0 :(得分:1)

因此,如果您有两个列表,一个带有标题,另一个带有值 - 您可以创建自己的动态INSERT查询。

query_placeholders = ', '.join(['%s'] * len(vl_list))
query_columns = ', '.join(ds_list)

insert_query = ''' INSERT INTO table (%s) VALUES (%s) ''' %(query_columns, query_placeholders)

然后执行&通过在查询中传递包含值的列表来提交查询。

cursor.execute(insert_query, vl_list)