python中的动态mysql插入语句 [英] dynamic mysql insert statement in python

查看:102
本文介绍了python中的动态mysql插入语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I need to update columns values in csv to mysql database and the csv values are dynamic for one file it may be 10 columns and for other it may be 5 columns.

我在 python 中的理解我们需要使用 list 之前提出的这个问题与我的要求相似,但这里的值是静态的,因此可以预定义,在我的情况下是动态的需要解决方案在 VALUES 下有 %%s根据我的列值动态相乘.

my understanding in python we need to use list also this question raised earlier is similar to my requirement but here the values are static so it can be predefined where's in my case being dynamic need to a solution to have %%s under VALUES to be multiplied according to my column values dynamically.

Python 中的 MySQL 动态查询语句

   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()

推荐答案

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

So, if you have two lists, one with headers and the other with values – you can create yourself dynamic INSERT query.

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

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

然后执行 &通过在查询中传递带有值的列表来提交您的查询.

and then execute & commit your query by passing list with values in query.

cursor.execute(insert_query, vl_list)

这篇关于python中的动态mysql插入语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆