将Excel数据导入数据库发生错误TypeError: not enough arguments for format string
import openpyxl
import pymysql.cursors
sj = openpyxl.load_workbook('工作簿1.xlsx')
ws = sj.active
parames = []
for row_idx in range(1, ws.max_row+1):
values = []
for col_idx in range(1, ws.max_column):
values.append(ws.cell(row_idx, col_idx))
parames.append(values)
conn = pymysql.connect(host='localhost', port=3306,
user='guest', password='Guest.007',
database='shuju', charset='utf8mb4')
try:
with conn.cursor() as cursor:
# 换行批量插入操作
cursor.executemany(
'insert into tb_shuju '
'(tb_shijian, tb_shuiwei) values (%s, %s)',
parames
)
conn.commit()
except pymysql .MySQLError as err:
print(err)
conn.rollback()
finally:
conn.close()
Traceback (most recent call last):
File "D:\Python\pythonProject1\shujuk\mysql 将数据写入数据库.py", line 21, in
cursor.executemany(
File "D:\Python\pythonProject1\shujuk\venv\lib\site-packages\pymysql\cursors.py", line 173, in executemany
return self._do_execute_many(
File "D:\Python\pythonProject1\shujuk\venv\lib\site-packages\pymysql\cursors.py", line 196, in _do_execute_many
v = values % escape(next(args), conn)
TypeError: not enough arguments for format string
读取Excel文件读取错误,输出了一下读取的内容基本上是[[<Cell 'Sheet1'.A1>], [<Cell 'Sheet1'.A2>], [<Cell 'Sheet1'.A3>]我的Excel表上是有数据的,读取出来的没有。数据库的表格也是两列
你在插表的时候,指定了两个变量,但是parames却是一个元素个数大于2的列表,当然插不进去了,而且你上面的循环,把EXCEL里所有行和所有列的值全部都放到一个一维列表里去了,也就是一行记录,这样哪里还能区分哪个值放第一个字段哪个值放第二个字段呢?