python利用第三方类库pandas处理csv excel 导入 导出 mysql 的 demo

脚本功能

1 利用python 读取csv文件数据 输出 并写入到mysql数据库

2 利用python 从mysql数据库读取数据并写入到csv文件中

3 用到的三方库

      pandas 安装
      pip install pandas
      sqlalchemy 安装
      pip install sqlalchemy
      pymysql 安装
      pip install  pymysql

4 python 脚本源码

# -*- coding: utf-8 -*-
# 导入必要模块pandas
import pandas as pd
from sqlalchemy import create_engine


def imtomysql():
    # 初始化数据库连接,使用pymysql模块
    engine = create_engine('mysql+pymysql://username:password@127.0.0.1:3306/dbname')
    # 读取本地CSV文件 当前目录下
    df = pd.read_csv("./web.csv", sep=',')
    # 将新建的DataFrame储存为MySQL中的数据表,表如果存在 则 继续拼接 不储存index列
    df.to_sql('webmpg', engine,if_exists='append', index=False)
    print("Write to MySQL successfully!")


def readfrommysql():
    # 初始化数据库连接,使用pymysql模块
    engine = create_engine('mysql+pymysql://username:password@127.0.0.1:3306/dbname')
    # 查询语句,选出sys_log表中的所有数据
    sql = ''' 
     select * from sys_log; 
     '''
    # read_sql_query的两个参数: sql语句, 数据库连接
    df = pd.read_sql_query(sql, engine)
    # 输出sys_log表的查询结果
    # print(df)
    # index表示设定是否需要行索引,设定为FALSE表明不需要,就不会生成新的行索引
    # header表明是否需要列索引,设定为True(默认设置)表明需要,那么之前df的列标签就会保存。

    df['id'] = df['id'].map(deal_str)
    df.to_csv('export.csv', index=False, header=True)
    # 新建pandas中的DataFrame, 只有id,num两列
    # df = pd.DataFrame({'id': [1, 2, 3, 4], 'num': [12, 34, 56, 89]})
    # 将新建的DataFrame储存为MySQL中的数据表,不储存index列
    # df.to_sql('mydf001', engine, index=False)
    print('Read from and write to Mysql table successfully!')


# 解决超过15位数字变E+问题
def deal_str(data):
    data = str(data) + '\t'
    return data


if __name__ == "__main__":
    # 从csv导入数据 到mysql库
     imtomysql()
    # 从mysql 导出数据到csv文件
    #readfrommysql()

你可能感兴趣的