我自己生成了两个csv文件,一个是写入了字符串数据,一个写入了整形数据,我想将这两个csv文件分别导入已经创建好的数据库对应表的列中去。
已经创建好的数据库及表如下:
import pymysql
import pandas as pd
orig_name = pd.read_csv('E:\pythonProject Web\min web框架\csv文件数据的写入\\name2.csv')
#我name2.csv所在的位置
orig_number = pd.read_csv('E:\pythonProject Web\min web框架\csv文件数据的写入\\number.csv')
#我number.csv所在的位置
lis_data = orig_name.values.tolist()
lis_data1 = orig_number.values.tolist()
db = pymysql.connect(host='localhost',
user='root',
password='数据库的密码',
port=3306,
db='stu_table')
cursor = db.cursor()
#这里插入的字符串数据和整型数据正好是stu_table数据库students中的前俩个列
sql = 'INSERT INTO students VALUES(%s,%s)'
cursor.executemany(sql, lis_data,lis_data1)
db.commit()
以上代码报错为:executemany() takes 3 positional arguments but 4 were given意思是Executemany()接受3个位置参数,但给出了4个
我的怀疑是不是SQL的用法使用错误,但是我又不知道这种多个数据的精确插入数据库SQL的语法到底该如何去写
**疑惑:不理解为什么最后传入了四个位置参数给了Executemany(),不应该只是俩个吗?如果是SQL的语法使用错误,那么这里的SQL语法该如何去改?
**