无法从 Python 访问具有 "TIME" 列的 Table
Table with "TIME" column could not be accessed from Python
我在 Postgres 中有一个 table,其列名为 TIME(大写)。
虽然使用 SQL 命令从 Postgres 本身将 csv 插入此 table 很容易。
COPY american_district FROM 'O:\Python\PostGREsql\district.csv' WITH CSV HEADER DELIMITER AS ',' NULL AS '\N';
但是使用下面的 python 代码将相同的 csv 插入 table 会给我一个错误,因为
f = open('O:\Python\PostGREsql\district.csv')
cur_DBKPI.copy_from(f, 'american_district', sep=',', null='')
错误:
psycopg2.DataError: invalid input syntax for type date: "TIME"
CONTEXT: COPY american_district, line 1, column time: "TIME"
我发现将列保持为小写是最佳做法,但有任何解决方法吗?
通过更改我的查询语法以使用 "copy_expert" 在其中添加 header 使其工作。
f = open('O:\Python\PostGREsql\district.csv')
sql = "COPY american_district FROM STDIN WITH CSV HEADER DELIMITER AS ',' NULL AS '\N'"
cur_DBKPI.copy_expert(sql=sql,file=f)
我在 Postgres 中有一个 table,其列名为 TIME(大写)。 虽然使用 SQL 命令从 Postgres 本身将 csv 插入此 table 很容易。
COPY american_district FROM 'O:\Python\PostGREsql\district.csv' WITH CSV HEADER DELIMITER AS ',' NULL AS '\N';
但是使用下面的 python 代码将相同的 csv 插入 table 会给我一个错误,因为
f = open('O:\Python\PostGREsql\district.csv')
cur_DBKPI.copy_from(f, 'american_district', sep=',', null='')
错误:
psycopg2.DataError: invalid input syntax for type date: "TIME"
CONTEXT: COPY american_district, line 1, column time: "TIME"
我发现将列保持为小写是最佳做法,但有任何解决方法吗?
通过更改我的查询语法以使用 "copy_expert" 在其中添加 header 使其工作。
f = open('O:\Python\PostGREsql\district.csv')
sql = "COPY american_district FROM STDIN WITH CSV HEADER DELIMITER AS ',' NULL AS '\N'"
cur_DBKPI.copy_expert(sql=sql,file=f)