2017-03-02 5 views
0

So habe ich diesen Code, um mit Redshift mit Python von einem Linux-Server zu verbinden. Es wirft mir die sqlalchemy.exc.NoSuchColumnError: "Konnte Spalte in Zeile für Spalte '0'" Fehler nicht finden, wenn ich versuche, die Tabellen vom Redshift-Server zu bekommen.sqlalchemy.exc.NoSuchColumnError: "Konnte Spalte in Zeile für Spalte '0' nicht finden"

Andere, die ähnliche Erfahrungen gemacht haben und ähnliche Fehler haben, indem sie Python-Pakete aktualisiert haben, habe ich früher alle von mir gemacht, aber ich bekomme immer noch den Fehler.

Versionen:

Python 2.7.12

SQLAlchemy 1.1.6

sqlalchemy Rotverschiebung 0.5.0

psycopg2 2.7

Hier ist der Code ist, verwende ich die console_login:

from sqlalchemy import create_engine 
import getpass 
import json 
def getredshiftconnect(console_login=True, login_credentials_file=None): 
try: 
    if console_login: 
     login = getpass.getpass("Username: ") 
     password = getpass.getpass("Password: ") 
     server = input("Server: ") 
     database = input("Database connecting to: ") 
     schema = input("Schema connecting to: ") 
     engine = create_engine("redshift+psycopg2://{0}:{1}@{2}:<PortNumber>/{3}"\ 
            .format(login, password, server, database)) 
    else: 
     # Read JSON file with login credentials 
     # Make sure that fields are referenced correctly, i.e.: 
     # login, password, server, database 
     login_credentials = json.load(open(login_credentials_file,"r")) 
     engine = create_engine("redshift+psycopg2://{0}:{1}@{2}:<PortNumber>/{3}"\ 
            .format(login_credentials["login"], 
              login_credentials["password"], 
              login_credentials["server"], 
              login_credentials["database"])) 
    # To test connection, if able to list tables then login was succesful 
    # Pick a schema that actually has tables 
    if engine.table_names(schema): # Explodes at this call 
     print ("Successfully connected") 
     return engine 
    else: 
     print ("Not properly connected") 
except Exception as e: 
    print ("Error Connecting: ", e) 

Antwort

1

Ich habe herausgefunden, dass SQLAlchemy-1.1.6 die Ursache des Problems ist. Nach Downgrade auf 1.1.5 funktioniert es in meinem Fall wieder gut.

Hinweis: Ich habe festgestellt, dass die neueste Version von SQLAlchemy einige weitere Fehler hat Auch musste ich SQLAlchemy auf einigen Servern entfernen und neu installieren, um das Problem zu beheben (z. B. pip uninstall SQLAlchemy).

+0

Auch mein Problem gelöst. Aber in meinem Fall benutzte ich sqlalchemy 1.1.9. Vielen Dank – Ramalho

Verwandte Themen