Как импортировать все таблицы из схемы Postgres, используя python - PullRequest
0 голосов
/ 13 марта 2019

Я знаю, что могу сделать это вручную, используя 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 '

Я полагаю, что проблема вызвана моими цитатами, но я не уверен.

РЕДАКТИРОВАТЬ: Итак, я попробовал пример здесь: Передача имени таблицы в качестве параметра в 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)))

Но мои таблицы 'Нет, так что я делаю что-то не так, но не вижу, что.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...