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中,必須要用單引號.
在創建表的時候一樣有用哦,下次就把創建表也添加上啦!
筆者踏過的坑,需要多多注意.如有幫助請留個評論.哈哈哈哈 .
突然發現有些網站原文不懂得轉發我的博客,哎,臉呢!!!
這也是我辛辛苦苦寫的東西,
轉發請注明出處,謝謝.
