Ich habe eine Tabelle in Postgres mit einem Spaltennamen als TIME (UpperCase). Beim Einfügen von CSV in diese Tabelle von Postgres selbst mit SQL-Befehl ist einfach.Tabelle mit "TIME" -Spalte konnte nicht von Python zugegriffen werden
COPY american_district FROM 'O:\Python\PostGREsql\district.csv' WITH CSV HEADER DELIMITER AS ',' NULL AS '\N';
aber die gleiche csv in die Tabelle einfügen mit Python Code unten ist mir ein Fehler als
f = open('O:\Python\PostGREsql\district.csv')
cur_DBKPI.copy_from(f, 'american_district', sep=',', null='')
ERROR:
psycopg2.DataError: invalid input syntax for type date: "TIME"
CONTEXT: COPY american_district, line 1, column time: "TIME"
Ich fand, dass seine bewährte Methode, die Säule zu halten in Kleinbuchstaben, aber gibt es einen Workaround?
Dieser Fehler zeigt an, dass Ihr Python-Code denkt, dass die erste Zeile Daten sind, nicht die Kopfzeile. Und so sendet es den Wert "TIME", der in diese Spalte eingefügt werden soll - was offensichtlich nicht funktionieren wird. Es hat nichts mit UPPER oder Kleinbuchstaben zu tun. Sie müssen das Äquivalent der "HEADER" -Option an diese Python-Methode übergeben. (Beachten Sie, dass [Name der Datenbank] (https://wiki.postgresql.org/wiki/FAQ#What_is_PostgreSQL.3F_How_is_it_it_pronouncated.3F_What_is_Postgres.3F) entweder Postgres oder PostgreSQL ist, nicht ** PostGREsql oder PostGre oder PosGreSQL) –
@Horse ohne Namen: Danke für das Feedback geteilt. Ich habe das Problem jetzt. – MoChen