Python连接SQL Sever数据库,将查询结果按日期方式命名保存到指定位置

4 篇文章 0 订阅
4 篇文章 0 订阅

Python连接SQL Sever数据库,将查询结果按日期方式命名并保存到指定位置

导入相关模块

import pymssql
import os
import time
import pandas as pd

如果报错,未找到相关模块则按以下方式处理
Step1:
在键盘同时按住这两个键(Win+R),出现如下界面(图1)
在“打开”的一栏输入 cmd 后点击确定,
进入后台安装模块的界面(图2)
Step2:
在图2里面输入对应的安装模块语句
pip install +模块名
eg: pip install pymssql
即可完成pymssql 模块的安装,其他的模块类似,只需要修改对应的模块名即可

图1
在这里插入图片描述
图2
在这里插入图片描述

连接SQL Sever 数据库

list_new_cus=[]
server = '10.91.255.15';user = 'sa';password = 'huadongdata';
conn=pymssql.connect(server, user, password, "ByteDance",charset='utf8')
cur=conn.cursor(as_dict=True)
sql='select \'上海\' as 区域,bpm客户id,客户,所属团队,当前绑定优化姓名,首次消耗日期,增值部门,bsm部门负责人 from 增值总部数据 where 首次消耗日期>=convert(date,DATEADD(d,-day(getdate()-1),GETDATE()),111)'
cur.execute(sql)
list_new_cus = cur.fetchall()
df=pd.DataFrame(list_new_cus)

其中
list_new_cus 即为查询后的结果数据;
df则表示用dateframe的形式保存,这样是为了更容易的写入excel中保存到本地;

结果数据里的中文乱码处理
for row in list_new_cus:
    row['区域']=row['区域'].encode('latin-1').decode('gbk')

1.如果结果数据中出现中文字符的乱码,将对应的列名进行编码和解码处理即可;
2.如果有多个字段出现中文乱,在以上语句的for循环中加入相同的一段语句,把列名替换即可;

for row in list_new_cus:
    row['区域']=row['区域'].encode('latin-1').decode('gbk')
    row['客户']=row['客户'].encode('latin-1').decode('gbk')

切换需要保存的文件路径

os.getcwd()#查看当前路径
os.chdir('C:\\work\\new_customer_online_yy')#切换到目标路径

其中os.chdir(‘目标路径’);

按日期方式命名文件并保存

df.to_excel(time.strftime('%Y-%m-%d',time.localtime())+' 新户上线数据'+'.xlsx')

保存后的结果截图:
在这里插入图片描述
这样每天的数据都能以当天的日期保存,方便后续查找和识别,同时也减少的每天手动取数的流程,大大提高工作效率。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值