Ich habe eine Tabelle in postgresql namens mytable und ich muss den Inhalt dieser Tabelle von einer Python-Anwendung auf stdout drucken.Drucken Sie eine postgresql-Tabelle auf die Standardausgabe in Python
Ich mache zur Zeit wie folgt zusammen:
conn = psycopg2.connect("dbname=postgres user=postgres password=psswd")
cur = conn.cursor()
cur.copy_to(sys.stdout,'mytable',sep = '\t')
Allerdings bekomme ich einige "\ N", wenn sein zwischen einigen Spalten gedruckt in. Ich glaube der Grund, warum dies passiert, ist, weil irgendwo während des Druckprozesses die Linie überschreitet und zur nächsten Linie in der Psql-Terminal geht und so diese \ N s auftauchen.
Ausgang:
E0307 1 M 400 Ethan UTDallas 12.98580404 \N 50.79403657 1
E0307 1 M 400 Lucas Baylor 15.18511175 \N 56.87285183 3
E0307 1 M 400 Jackson Baylor 13.64228411 \N 56.87285183 3
E0307 1 M 400 Jacob Baylor 13.19878974 \N 56.87285183 3
E0307 1 M 400 Samuel Baylor 14.84666623 \N 56.87285183 3
Meine Frage ist folgende:
Wie werde ich von diesen befreien \ N in der Ausgabe? Gibt es eine alternative Möglichkeit, eine Tabelle zu drucken? Ich versuche Wege zu vermeiden, auf denen ich eine komplette "SELECT * FROM my_table" -Abfrage ausführen muss. Etwas, das nur den Namen der zu druckenden Tabelle verwendet.
Wie bekomme ich auch die Tabellenköpfen beim Ausdrucken? Ich habe versucht, die folgenden:
cur.execute ("COPY TO Mytable mit csv-Header stdout")
Ich bekomme diese Fehlermeldung:
ProgrammingError: can't execute COPY TO: use the copy_to() method instead
Auch ich bin nicht sicher, wenn das der beste Weg ist. Aber etwas, was ich versuchte zu tun :)
ich diesen Fehler: Traceback (jüngste Aufforderung zuletzt): Datei "" Linie 1 in my_table = pd.read_sql_table ('team_totals ‘, Verbindung) Datei "C: \ Benutzer \ peshalnayak \ Anaconda3 \ lib \ site-packages \ pandas \ io \ sql.py", Linie 351, in read_sql_table Erhöhung NotImplementedError ("read_sql_table nur unterstützt" NotImplementedError : read_sql_table wird nur für SQLAlchemy connectable unterstützt. –
foobar
ok Ich werde meine Antwort aktualisieren, um die read_sql-Funktion zu verwenden, die eine Abfrage –
akzeptiert, in der Hoffnung, dass entweder die Zeilen "my_table" oder "another_attempt" funktionieren. einer verwendet den Standard 'pd_read_sql', der zweite verwendet' pd.io.sql', was ich speziell für die Verbindung zu Postgres vorgeschlagen habe. Neugierig, was funktioniert oder wenn beides funktioniert. –