Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python和SQL插入整个列表_Python_Sql - Fatal编程技术网

使用python和SQL插入整个列表

使用python和SQL插入整个列表,python,sql,Python,Sql,我正在使用INSERT INTO在数据库中插入数据 主要问题是我插入了大约170k个数据点,我循环了这样一个代码: for row in data: SQL='''INSERT INTO Table VALUES ({},{},{}) '''.format(row[0],row[1],row[2]) cur.execute(SQL) cur.commit() cur.close() con.close() 这个代码非常慢,有没有更快的方法呢 我在想是否有一种方法

我正在使用INSERT INTO在数据库中插入数据

主要问题是我插入了大约170k个数据点,我循环了这样一个代码:

for row in data:
   SQL='''INSERT INTO Table
       VALUES ({},{},{})
   '''.format(row[0],row[1],row[2])
   cur.execute(SQL)
cur.commit()
cur.close()
con.close()
这个代码非常慢,有没有更快的方法呢


我在想是否有一种方法可以一次插入整个矩阵数据列。

试试这个。基本上,您可以使用
executemany()
方法来实现它

导入mysql.connector
mydb=mysql.connector.connect(
.....
)
mycursor=mydb.cursor()
val=[]
对于数据中的行:
val.append((行[0],行[1],行[2]))
sql=“插入表(x,y,z)值(%s,%s,%s)”
mycursor.executemany(sql,val)
mydb.commit()

试试这个。基本上,您可以使用
executemany()
方法来实现它

导入mysql.connector
mydb=mysql.connector.connect(
.....
)
mycursor=mydb.cursor()
val=[]
对于数据中的行:
val.append((行[0],行[1],行[2]))
sql=“插入表(x,y,z)值(%s,%s,%s)”
mycursor.executemany(sql,val)
mydb.commit()
支持可能因DBMS而异(您没有指定),但您可以使用准备好的语句,在VALUES子句中使用DBMS的
paramstyle
字符串,并将行列表传递给
executemany()
方法。请参阅

中的文档,支持可能因DBMS而异(您没有指定),但您可以使用准备好的语句,在VALUES子句中使用DBMS的
paramstyle
字符串,并将行列表传递给
executemany()
方法。请参阅位于

的文档检查此项:检查此项: