首页 > 数据库技术 > 详细

使用pandas导出PostgreSQL 模式下的所有表数据并保存

时间:2019-03-15 12:23:51      阅读:475      评论:0      收藏:0      [点我收藏+]

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 模式下的所有表数据并保存

原文:https://www.cnblogs.com/liqk/p/10535724.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!