如何使用python从Postgres模式导入所有表

时间:2019-03-13 09:35:55

标签: python sql postgresql loops sqlalchemy

我知道我可以使用sqlalchemy和pandas手动完成

dbschema ='myschema'
engine = create_engine('postgresql://XX:YY@localhost:5432/DB', 
                       connect_args={'options': '-csearch_path={}'.format(dbschema )})

df =  psql.read_sql('Select * from myschema."df"', con = engine)

但是可以进行循环并获取所有表吗?

我尝试了

tables = engine.table_names()

print(tables) 
['A', 'B']

for table in tables :
table =  psql.read_sql('Select * from myschema."%(name)s"', con = engine, params={'name' : table})

我收到此消息:

第1行:从myschema中选择*。'A'

我想问题是由我的引号引起的,但我不确定。

编辑: 因此,我在这里尝试了该示例:Passing table name as a parameter in psycopg2

from psycopg2 import sql

try:
    conn = psycopg2.connect("dbname='DB' user='XX' host='localhost' password='YY'")
except:
    print ('I am unable to connect to the database')
print(conn)
cur = conn.cursor()
for table in tables :
    table =  cur.execute(sql.SQL("Select * from myschema.{}").format(sql.Identifier(table)))

但是我的桌子“没有”,所以我做错了什么,但看不到。

0 个答案:

没有答案