如何利用python将表复制到数据库

1、打开表

book = xlrd.open_workbook("收入数据.xls")
sheet = book.sheet_by_name("Sheet1")

 

2、连接数据库

conn = pymysql.connect(
        host='localhost',
        user='root',
        passwd='root',
        db='sys',
        port=3306,
        charset='utf8'
        )

 

3、获取游标

cur = conn.cursor()

 

4、创建插入数据库语句

 

 

query = 'insert into income (datetime,ironincome,generalincome,baiincome)values("%s","%s","%s","%s")'
# 创建一个for循环迭代读取xls文件每行数据的, 从第二行开始是要跳过标题行
for r in range(1, sheet.nrows):
      print(sheet.nrows)

      datetime    = sheet.cell(r,0).value
      print("======================")
      ironincome       = sheet.cell(r,1).value
      print("ironincome="+str(ironincome),type(ironincome))
      generalincome   = sheet.cell(r,2).value
      #打印general_income类型
      # print("general_income=" + str(general_income), type(general_income))
      print("3hang",generalincome)
      baiincome    = sheet.cell(r,3).value

      values = (datetime,ironincome,generalincome,baiincome)
      # 执行sql语句
      cur.execute(query%values)

5、关闭数据库

cur.close()
conn.commit()
conn.close()
columns = str(sheet.ncols)
rows = str(sheet.nrows)

 

 

执行前

执行后

 

完整代码如下

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

import xlrd
import pymysql
#打开数据所在的工作簿,以及选择存有数据的工作表
book = xlrd.open_workbook("收入数据.xls")
sheet = book.sheet_by_name("Sheet1")
#建立一个MySQL连接
conn = pymysql.connect(
        host='localhost',
        user='root',
        passwd='root',
        db='sys',
        port=3306,
        charset='utf8'
        )
# 获得游标
cur = conn.cursor()
# 创建插入SQL语句
query = 'insert into income (datetime,ironincome,generalincome,baiincome)values("%s","%s","%s","%s")'
# 创建一个for循环迭代读取xls文件每行数据的, 从第二行开始是要跳过标题行
for r in range(1, sheet.nrows):
      print(sheet.nrows)

      datetime    = sheet.cell(r,0).value
      print("======================")
      ironincome       = sheet.cell(r,1).value
      print("ironincome="+str(ironincome),type(ironincome))
      generalincome   = sheet.cell(r,2).value
      #打印general_income类型
      # print("general_income=" + str(general_income), type(general_income))
      print("3hang",generalincome)
      baiincome    = sheet.cell(r,3).value

      values = (datetime,ironincome,generalincome,baiincome)
      # 执行sql语句
      cur.execute(query%values)
cur.close()
conn.commit()
conn.close()
columns = str(sheet.ncols)
rows = str(sheet.nrows)
print ("导入 " +columns + "" + rows + " 行数据到MySQL数据库!")

 

 注意点:

1、表格中不要有空行,要不然表格数据插入到数据库时总是报空(这个错折磨我好久啦!!!)

2、调试时,用debug和print都能方便你很好的解决问题,学着用起来吧!

 

 

转载于:https://www.cnblogs.com/zsw001/p/11132889.html

Python中,可以使用不同的库来实现数据库复制。以下是一些常用的数据库和相应的Python库: 1. MySQL:可以使用`mysql-connector-python`库来连接和复制MySQL数据库。你可以使用`pip install mysql-connector-python`命令安装该库。 示例代码: ```python import mysql.connector # 连接源数据库 source_conn = mysql.connector.connect( host='source_host', user='source_user', password='source_password', database='source_database' ) # 连接目标数据库 target_conn = mysql.connector.connect( host='target_host', user='target_user', password='target_password', database='target_database' ) # 执行复制操作 cursor = source_conn.cursor() cursor.execute('SELECT * FROM table_name') records = cursor.fetchall() target_cursor = target_conn.cursor() target_cursor.executemany('INSERT INTO table_name VALUES (%s, %s, ...)', records) target_conn.commit() # 关闭连接 cursor.close() target_cursor.close() source_conn.close() target_conn.close() ``` 2. PostgreSQL:可以使用`psycopg2`库来连接和复制PostgreSQL数据库。你可以使用`pip install psycopg2`命令安装该库。 示例代码: ```python import psycopg2 # 连接源数据库 source_conn = psycopg2.connect( host='source_host', user='source_user', password='source_password', database='source_database' ) # 连接目标数据库 target_conn = psycopg2.connect( host='target_host', user='target_user', password='target_password', database='target_database' ) # 执行复制操作 source_cursor = source_conn.cursor() source_cursor.execute('SELECT * FROM table_name') records = source_cursor.fetchall() target_cursor = target_conn.cursor() target_cursor.executemany('INSERT INTO table_name VALUES (%s, %s, ...)', records) target_conn.commit() # 关闭连接 source_cursor.close() target_cursor.close() source_conn.close() target_conn.close() ``` 请根据你使用的具体数据库类型和库来进行相应的配置和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值