python利用第三方类库pandas处理csv excel 导入 导出 mssql sqlserver 的 demo
·
脚本功能
1 利用python 读取csv文件数据 输出 并写入到mssql sqlserver 数据库
2 利用python 从mssql sqlserver 数据库读取数据并写入到csv文件中
3 用到的三方库
pandas 安装
pip install pandas
sqlalchemy 安装
pip install sqlalchemy
pymssql 安装
pip install pymssql
4 pandas.read_csv 分段读取方法
pandas.read_csv() 文件 chunksize=5000 逐步执行 防止python 报 out of memory错误
5 python脚本 源码
# -*- coding: utf-8 -*-
# 导入必要模块
import pandas as pd
from sqlalchemy import create_engine
# 从csv读取数据到数据库表中
def imtomssql():
# 初始化数据库连接,使用pymssql模块
engine = create_engine('mssql+pymssql://sa:xxxxx@127.0.0.1/rujia', connect_args={'charset': 'utf8'},
echo=True) # 初始化数据库连接
# 读取本地CSV文件
path = open(unicode('E:/泄露互联网/rujia2000w/1-200W.csv', 'UTF8'), 'r')
# 设置成一批执行2万条
df = pd.read_csv(path, sep=',', encoding='utf-8', chunksize=5000, iterator=True, low_memory=False)
# df = pd.read_csv("./web.csv", sep=',', encoding='utf-8')
# print(df['instance_description'])
# 将新建的DataFrame储存为sqlserver中的数据表,表如果存在 则 继续拼接 不储存index列
for chunk in df:
chunk.to_sql('rujia-python', engine, if_exists='append', index=False)
print(" running Write to sqlserver...")
print("Write to sqlserver successfully!")
# 从数据库中读取数据输出到csv文件中
def readfrommysql():
# 初始化数据库连接,使用pymysql模块
engine = create_engine('mssql+pymssql://sa:xxxxx@127.0.0.1/rujia', echo=True)
# 查询语句,选出sys_log表中的所有数据
sql = '''
select * from [1000W-1200W] where Name='王X伟'
'''
# read_sql_query的两个参数: sql语句, 数据库连接
df = pd.read_sql_query(sql, engine)
# 输出sys_log表的查询结果
print(df)
df.to_csv('export.csv', encoding='utf-8')
# 新建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 mssql sqlserver table successfully!')
if __name__ == "__main__":
# 导入到sqlserver库
imtomssql()
# readfrommysql()
更多推荐


所有评论(0)