我编写了一段Python代码,应该将CSV数据复制到我创建的用于托管数据的表中。这是代码:
def sql_copy_command(csv_file, schema, database, table, delimiter = ',', header = True):
if header:
sql_command = """COPY "{schema}_{tbl}" FROM '{the_csv_file}' DELIMITER '{dlm}' CSV HEADER;""".format(the_csv_file = csv_file, db = database, tbl = table, dlm = delimiter, schema = schema)
else:
sql_command = """COPY "{schema}_{tbl}" FROM '{the_csv_file}' DELIMITER '{dlm}' CSV;""".format(the_csv_file = csv_file, db = database, tbl = table, dlm = delimiter, schema = schema)
return sql_command
这会引发以下错误:
DataError: invalid input syntax for integer: "Visa"
CONTEXT: COPY insight_transaction, line 2, column id: "Visa"
在我看来,不是account_type,而是我模型中的第一个字段,postgres希望看到ID,这是表中的第一列。鉴于ID是自动生成的,我不知道如何在我的代码中解决这个问题。