excel导入数据库(pymysql pandas)

这篇博客探讨了在使用Python的pymysql和pandas库将Excel数据导入数据库时如何处理重复数据,提出了四种策略,包括数据预处理、SQL筛选、添加唯一索引以及代码逻辑判断。同时,博主在多sheet导入的实践中遇到了键值重复和索引主键问题,分享了解决方案,并强调了编程注意事项和优化方法。
摘要由CSDN通过智能技术生成
问题1:不导入重复数据

处理方式:
1.可以把数据先导入,导入完后执行(truncate table tatble_name; )删除重复
2.导入语句的筛选(主键自增无法生效) https://blog.csdn.net/qq_37273544/article/details/85284626
3.添加多列唯一索引(会存在警告)
https://www.cnblogs.com/a-du/p/7117837.html
在这里插入图片描述
4.代码判断,存在不插入,不存在插入
https://blog.csdn.net/qq_32331997/article/details/84834623


问题2:插入完打印插入条数及数据
**需要注意:**
建立表:字段:字符集需为gbk 或 utf-8
 
CREATE TABLE `test` (
  `a` char(20) CHARACTER SET gbk NOT NULL,
  `last` char(20) CHARACTER SET gbk NOT NULL,
  `income` char(30) CHARACTER SET gbk DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

练习(多sheet导入):

# -*- coding:utf-8 -*-

'''
参考:https://www.cnblogs.com/longbigbeard/p/9309180.html
【多sheet导入test&test1表】
使用 pymysql 数据库操作
使用 xlrd 读取excel
逻辑:excel数据先写到list列表,再通过cursor.executemany(sql, list)一次性写入数据库
【导入逻辑】:
1.获取excel的sheet名
2.获取数据库的表名
3.sheet名与表名判断是否匹配,如果匹配就导入该sheet数据到数据库表
'''

import pymysql
import xlrd
import datetime

db_name = 'test'
excel_file = 'example.xls'

db = {
   }   # 全局变量
book = {
   }
try:
    db = pymysql.connect (host="47.96.109.254", port=3306, user="test", passwd="test", db=db_name)
except:
    print("could not connect to mysql server!")

try:
    book = xlrd.open_workbook(excel_file)  # 文件名,把文件与py文件放在同一目录下
except:
    print("open excel file failed!")

# print(db)
# print(book)


def get_db_table_names():
    """获取数据库表名"""
    cursor = db.cursor()
    sql = '''SHOW TABLES'''
    cursor.execute(sql)
    table_names = [
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值