使用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 ...
随机推荐
- springMVC+request.session实现用户登录和访问权限控制
用springmvc mybatis实现用户登录登出功能,使用session保持登录状态,并实现禁止未登录的用户访问.感谢谷歌资源,在这里做个学习记录加深自己的印象. 原文在我的https://my. ...
- Linux中常用命令(文件)
1.cat 显示出文件的全部内容 (1)格式:cat 文件名 -n 显示行号 (2)特点:一次性显示所有文件内容 2.tac 从最后一行倒着显示文件全部内容 3.more 全屏方式分页显示文件内容 回 ...
- OpenJDK源码研究笔记(八)-详细解析如何读取Java字节码文件(.class)
在上一篇OpenJDK源码研究笔记(七)–Java字节码文件(.class)的结构中,我们大致了解了Java字节码文件的结构. 本篇详细地介绍了如何读取.class文件的大部分细节. 1.构造文件 ...
- [Spark源代码剖析] DAGScheduler提交stage
转载请标明出处:http://blog.csdn.net/bigbigdata/article/details/47310657 DAGScheduler通过调用submitStage来提交stage ...
- VS链接数据库
可以用VS链接数据库,并进行数据库操作.前提是安装了Sqlserver,活着连接线上的数据库服务器.
- Linux 服务器下多网卡的负载均衡
Linux 服务器下多网卡负载均衡的实现 一.引言 现今几乎各行各业内部都建立了自己的服务器,由于服务器的特殊地位,它的可靠性.可用性及其 I/O 速度就显得非常的重要, 保持服务器的高可用 ...
- display 表格模型值
display:inline-table 此元素会作为内联表格来显示(类似 <table>),表格前后没有换行符.display:inline-table 可以使文字和表格在同一行显示 d ...
- 参考《深度学习原理与应用实践》中文PDF
读国内关于深度学习的书籍,可以看看<深度学习原理与应用实践>,对深度学习原理的介绍比较简略(第3.4章共18页).只介绍了"神经网络"和"卷积神经网络&quo ...
- CODEVS——T 1404 字符串匹配
http://codevs.cn/problem/1404/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 查看运行结果 题目描述 Desc ...
- 讲的好,php后端模式,php-fpm以及php-cgi, fast-cgi,以及与nginx的关系
关于cgi是什么,fast-cgi是什么,php-cgi是什么,fast-cgi是什么,下面这篇讲的很清楚: https://segmentfault.com/q/1010000000256516 另 ...