代码如下:
# -*- coding: utf-8 -*-
import pymysql
import xlrd
# 连接数据库
try:
db = pymysql.connect(host="127.0.0.1",
user="root",
passwd="root",
db=" test",
charset='utf8')
except:
print("could not connect to mysql server")
def open_excel():
try:
book = xlrd.open_workbook("user.xlsx")
# 文件名,把文件与py文件放在同一目录下;当其不与此脚本在同一目录下时,需要写上其绝对路径
try:
sheet = book.sheet_by_name("Sheet1")
return sheet
except:
print("locate worksheet in excel failed!")
except:
print("open excel file failed!")
def insert_deta():
sheet = open_excel()
cursor = db.cursor()
row_num = sheet.nrows
print(row_num)
# 第一行是标题名,对应表中的字段名所以应该从第二行开始,计算机以0开始计数,所以值是1
for i in range(1, row_num):
row_data = sheet.row_values(i)
print(row_data[0])
value_id = int(row_data[0])
value1 = int(row_data[1])
value2 = int(row_data[2])
print(value_id, value1, value2)
sql = "UPDATE auth_user SET member_type1_id={0},member_type2_id={1} WHERE id={2}".format(value1, value2, value_id)
cursor.execute(sql) # 执行sql语句
db.commit()
cursor.close() # 关闭连接
if __name__ == '__main__':
insert_deta()
过程中遇到的问题:
1、数据库名出错。
2、在网上查找到大部分都是数据库插入操作,很少有更新操作,因此在写sql时遇到了一下问题。