pandas读取mysql并导出为excel
前言
业务需要从数据库导出数据为excel,并设置成自动化。这里用pandas写的数据导入导出,还算方便。配合crontab + shell脚本使用,每天晚上自动生成excel,然后cp到指定目录。shell脚本比较简单就不展示了,下面是python代码。
PS:如果服务器网络隔离不方便安装依赖,可以用pyinstaller打包成可执行文件。
安装依赖
pip install pandas sqlalchemy pymysql openpyxl -i https://mirrors.aliyun.com/pypi/simple
code
import pandas as pd
from sqlalchemy import create_engine
# 创建连接器
engine = create_engine("mysql+pymysql://username:password@ip:port/db_name")
def get_yesterday():
"""获取昨天的日期"""
today=datetime.date.today()
oneday=datetime.timedelta(days=1)
yesterday=today-oneday
return yesterday
start_time = get_yesterday().isoformat() + " " + "08:00:00"
end_time = get_yesterday().isoformat() + " " + "21:00:00"
# SQL语句
# 指定日期时间
sql1 = """
select *
from cdr_2019_copy1
where start_time>="2019-07-02 08:55:00" and end_time < "2019-07-02 09:00:00";
"""
# 动态语句
sql2 = 'select * from cdr where start_time >= "' + start_time + '" and end_time < "' + end_time + '" ;'
# 读取数据库数据为dataframe
df1 = pd.read_sql(sql,engine)
print(df1)
# 导出为excel文件
filename = get_yesterday().strftime("%Y%m%d") + ".xlsx"
df2.to_excel(filename, index=False)
打包
pyinstaller -F -p C:\software\python\Lib\site-packages hello.py
如果用到了pymysql库,最好指定site-packages的目录位置。
pandas读取mysql并导出为excel的更多相关文章
- MySQL要导出成excel的方法
MySQL 要导出成 excel 文件很简单,执行类似这样的命令: select * from 某个表 into outfile 'd:/文件名.xls'; 上述命令你在服务器上执行,就导在 ...
- pandas读取MySql/SqlServer数据 (转)
在 Anacondas环境中,conda install pymssql ,一直报包冲突,所以采用先在 https://www.lfd.uci.edu/~gohlke/pythonlibs/#nump ...
- MySQL数据导出为Excel, json,sql等格式
MySQL数据经常要导出为Excel, json,sql等格式,通过步骤都很多,麻烦,现在通过Treesoft可以方便的导出你要的数据格式. 1.在线执行SQL,在数据列表中有相应按钮,方便的将数据导 ...
- Pandas 读取超过 65536 行的 Excel 文件
Excel 文件的格式曾经发生过一次变化,在 Excel 2007 以前,使用扩展名为 .xls 格式的文件,这种文件格式是一种特定的二进制格式,最多支持 65,536 行,256 列表格.从 Exc ...
- pandas读取MySql/SqlServer数据
用过的东西总是会忘记,尤其是细节,还是记下来比较靠谱. 读取MySql数据 1 import MySQLdb 2 import pandas as pd 3 4 conn = MySQLdb.conn ...
- 利用pandas将numpy数组导出生成excel
代码 # -*- coding: utf- -*- """ Created on Sun Jun :: @author: Bruce Lau ""&q ...
- Python之pandas读取mysql中文乱码问题
# -*- coding: utf-8 -*- # author:baoshan import pandas as pd import pymysql config = { "host&qu ...
- PHP实现MySQL数据导出为EXCEL(CSV格式)
<?php // 输出Excel文件头,可把user.csv换成你要的文件名 header('Content-Type: application/vnd.ms-excel'); header(' ...
- mysql数据导出为excel文件
select * from xi_table into outfile ’d:test.xls’
- 深入理解pandas读取excel,txt,csv文件等命令
pandas读取文件官方提供的文档 在使用pandas读取文件之前,必备的内容,必然属于官方文档,官方文档查阅地址 http://pandas.pydata.org/pandas-docs/versi ...
随机推荐
- 【Python基础】变量的作用域与global、nonlocal
在 Python 中,变量的作用域指的是变量可以被访问的范围.Python 中的变量作用域有两种: 局部作用域:变量在函数函数内部的时候,只能在函数内部使用.这样的变量被称为局部变量. 如果在函数内部 ...
- 2022-04-24:位集 Bitset 是一种能以紧凑形式存储位的数据结构。 请你实现 Bitset 类。 Bitset(int size) 用 size 个位初始化 Bitset ,所有位都是 0
2022-04-24:位集 Bitset 是一种能以紧凑形式存储位的数据结构. 请你实现 Bitset 类. Bitset(int size) 用 size 个位初始化 Bitset ,所有位都是 0 ...
- golang基础面试题,不完整
启动流程 Q.go的init函数是什么时候执行的? Q.多个init函数执行顺序能保证吗? Q.go init 的执行顺序,注意是不按导入规则的(这里是编译时按文件名的顺序执行的) Q.init函数能 ...
- 2021-06-27:给定一个正数数组arr,代表若干人的体重。再给定一个正数limit,表示所有船共同拥有的载重量。每艘船最多坐两人,且不能超过载重,想让所有的人同时过河,并且用最好的分配方法让船尽
2021-06-27:给定一个正数数组arr,代表若干人的体重.再给定一个正数limit,表示所有船共同拥有的载重量.每艘船最多坐两人,且不能超过载重,想让所有的人同时过河,并且用最好的分配方法让船尽 ...
- elementui中的el-table,(prop对应多个属性)中拼接两个列表字段并展示
elementui中的el-table,(prop对应多个属性)中拼接两个列表字段并展示 <el-table-column prop="pa_dt_name,pa_duty_name& ...
- 《数据结构(C语言版)》严蔚敏代码实现———顺序表
一.前言 最近在重新学习数据结构啦,网上说这本书挺不错哒,于是我开始啃这本书咯...有一说一,严奶奶的书挺好的,就是有点大量使用指针...需要沉下心来,看一看画一画才能懂,我自己手敲了一遍书上代码,加 ...
- Linux 文件系统inode号和备份恢复
目录 一.inode原理 二.时间类型 三.inode号管理 四.inode实验 五.备份恢复 七.备份实验 一.inode原理 inode只有一个,唯一的,一个文件必须占用一个inode号,但是至少 ...
- Mac常用文件解压命令
tar 解压:tar xvf fileName.tar 压缩:tar cvf fileName.tar directoryName rar 1.安装rar 下载RAR https://www.rarl ...
- Python基础 - 解释性语言和编译性语言
什么是机器语言 计算机是不能理解高级语言,当然也就不能直接执行高级语言了.计算机只能直接理解机器语言,所以任何语言,都必须将其翻译成机器语言,计算机才能运行高级语言编写的程序. 如何把我们写的代码 ...
- 提高生产力的最佳免费开源终端:WindTerm
哈喽,大家好!我是程序视点的小二哥! 前言 自从当上程序员以来使用频率最多的不是vscode,也不是github,而是终端!!! 小师妹使用过很多的终端工具,什么Tabby,Putty,Wrap等等, ...