使用Postgress COPY导入CSV时出现导入错误

2024-09-27 23:17:04 发布

您现在位置:Python中文网/ 问答频道 /正文

CSV文件很简单,如下所示:

Name,Channel0,Channel1,Channel2,Channel3,Channel4
CSBA10,125833,147883,184269,162270,151366
CSBA20,125533,145883,154269,152270,155365

表如下所示:

CREATE TABLE public."csTest"
(
    idname character varying(200) COLLATE pg_catalog."default" NOT NULL DEFAULT nextval('seqtest'::regclass),
    channel0 double precision,
    channel1 double precision,
    channel2 double precision,
    channel3 double precision,
    channel4 double precision,
    CONSTRAINT "csTest_pkey" PRIMARY KEY (idname)
);

查询如下所示:

COPY public."csTest" FROM  '/file/on/server.csv' DELIMITER ',' CSV;

所有这些都是通过一个简单的python脚本完成的,而查询是失败的,我不知道为什么。但是,为了以防万一,为了您的方便,这里是python代码

        conn = psycopg2.connect(
            "host="+host+" port="+port+" dbname="+dbname+
            " user="+user+" password="+password+""
        )

        cur = conn.cursor()
        cur.execute(query)
        conn.commit()
        conn.close()

Error Message: psycopg2.DataError: invalid input syntax for type numeric: "Channel0"

我错过了什么

提前谢谢


Tags: csvhostportpasswordpublicconnpsycopg2precision
1条回答
网友
1楼 · 发布于 2024-09-27 23:17:04
COPY public."csTest" FROM  '/file/on/server.csv' DELIMITER ',' CSV HEADER;

应该做到这一点,因为它将第一行读取为数据,而不是列名(如果未指定)

更新 此外,我还预测了numeric(10,10)和您的数据的问题-也许您指的是numeric (20,10)或类似的numeric(10,10)将接受0-0.9999999范围

相关问题 更多 >

    热门问题