Pymysql+Pandas+Sqlalchemy数据库更新脚本编写

#导入须要的包,使用pymysql操做数据库mysql

#pandas包很强大,能够直接读取数据表,建立dataframe数据结构,同时能够直接将dataframe导出到数据库sql

#sqlalchemy建立引擎,与数据库进行链接数据库

import pymysql
import pandas as pd
import sqlalchemy
from sqlalchemy import create_engine
from pandas import DataFrame数据结构

 

#把数据表导入数据库
def put_data(df1):
  user = '***'
  pwd = '***'
  host = '***'
  port = 3306
  DB = '***'app

  #引擎:也就是实体数据库链接。传入参数:数据库类型+链接库+用户名+密码+主机,字符编码
  conn = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(user, pwd, host, port, DB)
  conn1 = create_engine(conn)函数

  #to_sql函数支持两类mysql引擎一个是sqlalchemy,另外一个是sqlliet3.没错,在你写入库的时候,pymysql是不能用的!!!mysqldb也是不能用的,你只能使用sqlalchemy或者sqlliet3!注意!!!to_sql函数并不在pd之中,而是在io.sql之中,是sql脚本下的一个类!!!因此to_sql的最好写法就是:
  return pd.io.sql.to_sql(df1, name='***', con=conn1, if_exists='append')编码

 

  #to_sql参数说明:(数据, '表名', con=链接键, schema='数据库名', if_exists='操做方式')? ? 操做方式有append、fail、replace、append:若是表存在,则将数据添加到这个表的##后面spa

df1 = pd.read_excel(r'***.xlsx')
put_data(df1)excel

 

#从数据库提取数据表
def get_data():
  user = '***'
  pwd = '***'
  host = '***'
  port = 3306
  DB = '***'
  conn = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(user, pwd, host, port, DB)
  conn1 = create_engine(conn)
  sql_cmd = 'SELECT * FROM ***'
  return pd.read_sql(sql=sql_cmd, con=conn1)
df1 = get_data()
df1.to_excel(r'***.xlsx')orm

相关文章
相关标签/搜索