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)
Auch mein Problem gelöst. Aber in meinem Fall benutzte ich sqlalchemy 1.1.9. Vielen Dank – Ramalho