使用pandas导出PostgreSQL 模式下的所有表数据并保存
PostgreSQL
PostgreSQL 是一个非常强大的数据库,它是一个免费的对象-关系数据库服务器(数据库管理系统).PostgreSQL支持大部分 SQL 标准, 在语句上也有很大的相似的地方,但是它也增加了新的数据类型,亦可以储存矢量数据信息,比如地理信息.现在也有越来越多的人开始使用postgresql数据库.更多详情信息请在 官方社区(中文) 中查看
批量导出模式中的所有表数据
笔者也才刚开始接触,也有很多不足的地方,后期要知道有优化的地方我会再次修改的.
话不多说直接开始我们需要用的:使用pandas批量导出数据,pandas 不得不数是一个非常强大数据处理工具,他可以直接连接数据库读取其中的数据
直接来代码
import pandas as pd
import psycopg2 # pip install psycopg2
# 连接数据库
# database: 需要连接的数据库名
# user: 使用用户,默认就用postgres
# password: 数据库密码
# host: 端口号
conn = psycopg2.connect(database='58TC',user='postgres',password='123456',host=5432)
# 获取模式下的所有表名, 返回结果是dataframe
# pg_tables: 不需要改,获取表名
# schemaname: 你需要导出的数据的模式名
df_tables = pd.read_sql_query("select * from pg_tables where schemaname='2019-3-5'",con=conn)
tables = df_tables['tablename']
到这一步,我们就能获取模式下的所有表的名字,接下来我们只需要读取表中的内容即可
# 将表中的数据进行储存
for city_table in tables:
# 获取当前表中的所有数据
df = pd.read_sql_query('select * from "2019-3-5"."%s"' % city_table,con = conn)
# 储存路径,存储为excel
path = 'C:/PostgreSQL/%s.xlsx' % city_table
df.to_excel(path,encoding='utf-8')
# 关闭数据库
conn.close
这样我们就完成批量导出模式中的数据啦.不过这里边有很深的坑需要注意.
特别注意
当你使用查询语句的时候尤其要注意符号的问题,在PostgreSQL自带的可视化平台pgAdmin4中,比如说
'select * from "2019-3-5"."%s"' % city_table
模式和表名必须要用双引号,如果使用单引号就会报错.但是在限制语句where中,必须要用单引号.
在创建表的时候一样有用哦,下次就把创建表也添加上啦!
笔者踏过的坑,需要多多注意.如有帮助请留个评论.哈哈哈哈 .
突然发现有些网站原文不懂得转发我的博客,哎,脸呢!!!
这也是我辛辛苦苦写的东西,
转发请注明出处,谢谢.
使用pandas导出PostgreSQL 模式下的所有表数据并保存的更多相关文章
- 测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程
测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程 最近系统出现问题,由于数据库产生的日志量太大无法开启归档模式,导致offline的 ...
- Oracle如何导出sys用户下的系统表
环境:Solaris 10 + Oracle 10.2.0.4 1.导出实例 2.参考内容 Reference 1.导出实例 导出sys用户下的HIST_HEAD$和WRI$_OPTSTAT_HIST ...
- vi模式下的编辑、删除、保存和退出
vi + 文件名:进入 vi 模式 编辑模式:shift+: 退出编辑模式:Esc 退出编辑模式后可进行光标的上下左右移动(偶尔会出现ABCD,还不知道怎么解决,目前只能出来一个删除一个) 光标处:按 ...
- oracle如何通过cmd导出某个用户下的所有表
1:如果要导入的用户下有空表,需要执行下面语句 select 'alter table '||table_name||' allocate extent;' from user_tables wher ...
- Oracle下通过EXPDP导出某用户下的所有表,实例
一开始在所数据库表导入,导出的时候,经常发现含有BLOB等大数据类型文件无法简单正常的导入导出(imp/dmp),然后在网上得知oracle 10以后有了(impdp/dmpdp)命令,数据导入导出的 ...
- 魅族MX3\MX2 在MTP模式下恢复手机误删数据教程
昨天帮室友的魅族mx3升级系统,结果不小心把他手机里的照片删了.但是自从flyme升级到3后,以前的U盘模式就改成了MTP模式,这样再连接电脑后就没办法用电脑上的数据恢复软件恢复数据了,因为压根就检测 ...
- Oracle中快速查询和操作某个用户下的所有表数据信息
一.禁止所有的外键约束 在pl/sql developer下执行如下语句:SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' | ...
- postgresql 不同数据库不同模式下的数据迁移
编写不容易,转载请注明出处谢谢, 数据迁移 因为之前爬虫的时候,一部分数据并没有上传到服务器,在本地.本来用的就是postgresql,也没用多久,数据迁移的时候,也遇到了很多问题,第一次使pg_du ...
- ASM:《X86汇编语言-从实模式到保护模式》第17章:保护模式下中断和异常的处理与抢占式多任务
★PART1:中断和异常概述 1. 中断(Interrupt) 中断包括硬件中断和软中断.硬件中断是由外围设备发出的中断信号引发的,以请求处理器提供服务.当I/O接口发出中断请求的时候,会被像8259 ...
随机推荐
- 如何解决本地仓库和远程仓库的冲突(Conflict)
Background: 我有一个github仓库管理我的代码,我将这个仓库的代码clone到我的工作电脑和私人电脑本地方便我上班和在家时都可以对我的代码进行更新. 一天,我在家修改过代码之后并未提交, ...
- CMSIS-RTOS 简介
CMSIS-RTOS API是基于Arm®Cortex®-M处理器的设备的通用RTOS接口.CMSIS-RTOS为需要RTOS功能的软件组件提供标准化API,从而为用户和软件行业带来了巨大的好处. C ...
- 题解 P3243 【[HNOI2015]菜肴制作】
这道题看起来就是个裸的拓扑排序,抄上模板就能AC. 上面这种想法一看就不现实,然鹅我第一次还真就这么写了,然后被随意hack. 我们需要注意一句话: 现在,酒店希望能求出一个最优的菜肴的制作顺序,使得 ...
- Hadoop学习总结(1)——大数据以及Hadoop相关概念介绍
一.大数据的基本概念 1.1.什么是大数据 大数据指的就是要处理的数据是TB级别以上的数据.大数据是以TB级别起步的.在计算机当中,存放到硬盘上面的文件都会占用一定的存储空间,例如: 文件占用的存储空 ...
- Qt之图形(绘制文本)
简述 前面我们讲解了Qt图形的基本绘制,其中包括: 绘制文本.直线.直线.矩形.弧线.椭圆.多边形.图片,以及其它一些高级用法,比如:渐变.转换等. 本节我们来详细讲解文字的绘制.主要通过QPaint ...
- Iocomp控件之数字显示【图文】
Iocomp关于数字显示有自己的一套方案.并且效果非常棒哦 效果图: 插入控件: 默认效果: 随意改动属性后: 加入变量 调用函数: ); 效果图:
- ALTERA器件中复位电路实现之-异步复位同步化
所谓异步复位同步化,就是我们通常说的异步复位同步撤除. 为了避免纯粹的同步复位和纯粹异步复位的问题,可以使用一种叫做同步化的异步复位,我们称其为第三类复位.这种复位完全结合了异步复位和同步复位的优势, ...
- 14.idea右键单击没有 svn选项处理办法
转自:http://www.cnblogs.com/xiohao/p/5044213.html 问题一: IntelliJ IDEA打开带SVN信息的项目不显示SVN信息,项目右键SVN以及图标还有C ...
- Gym - 100625G Getting Through 计算几何+并查集
http://codeforces.com/gym/100625/attachments/download/3213/2013-benelux-algorithm-programming-contes ...
- CloudFoundry 云平台部署
CloudFoundry云平台部署 CloudFoundry(TheOpenSourceCloudOperatingSystem)距离发布已经一年多了作为第一个开源的PaaS平台日臻成熟.在这一年里C ...