读取CSV以使用Python将数据插入Postgres SQL
我想读取一个csv文件,用Python将数据插入postgres SQL 但我有以下错误:读取CSV以使用Python将数据插入Postgres SQL,python,postgresql,csv,psycopg2,Python,Postgresql,Csv,Psycopg2,我想读取一个csv文件,用Python将数据插入postgres SQL 但我有以下错误: cursor.execute(passdata) psycopg2.IntegrityError: duplicate key value violates unique constraint "prk_constraint_project" DETAIL: Key (project_code)=(%s) already exists. 我的代码是: clinicalCSVINSERT
cursor.execute(passdata)
psycopg2.IntegrityError: duplicate key value violates unique constraint "prk_constraint_project"
DETAIL: Key (project_code)=(%s) already exists.
我的代码是:
clinicalCSVINSERT = open(clinicalname, 'r')
reader = csv.reader(clinicalCSVINSERT, delimiter='\t')
passdata = "INSERT INTO project (project_code, program_name ) VALUES ('%s', '%s')";
cursor.execute(passdata)
conn.commit()`
这个错误意味着什么?
是否可能有一个工作脚本?代码的直接问题是您试图包含文本
%s
。由于您可能多次运行它,因此在该唯一列中已经有一个文本%s
,因此出现了异常
有必要将包装在iterable中的值作为参数传递给execute
方法。%s
只是一个值占位符
passdata = """
INSERT INTO project (project_code, program_name )
VALUES (%s, %s)
"""
cursor.execute(passdata, (the_project_code, the_program_name))
不要引用%s
。如有必要,Psycopg将这样做
由于您的代码不包含循环,因此它将仅从csv中插入一行。有一些模式可以插入整个文件。如果要求允许只使用更简单、更快的代码。代码的直接问题是您试图包含文本
%s
。由于您可能多次运行它,因此在该唯一列中已经有一个文本%s
,因此出现了异常
有必要将包装在iterable中的值作为参数传递给execute
方法。%s
只是一个值占位符
passdata = """
INSERT INTO project (project_code, program_name )
VALUES (%s, %s)
"""
cursor.execute(passdata, (the_project_code, the_program_name))
不要引用%s
。如有必要,Psycopg将这样做
由于您的代码不包含循环,因此它将仅从csv中插入一行。有一些模式可以插入整个文件。如果要求允许,只需使用更简单、更快的文件。My CSV包含以下数据:`文件uuid 1B3DB121-B766-486D-AB7D-65AB646CE5AC批次号304.63.0项目代码TCGA疾病代码ACC日期上传312016年dcc上传月份3年(数据为单独数值)`我的CSV包含这样的数据:`文件uid 1B3DB121-B766-486D-AB7D-65AB646CE5AC批次号304.63.0项目_代码TCGA疾病_代码ACC日期_dcc上传31个月_dcc上传32016年dcc上传年份(数据为选项卡独立值)`感谢您的快速回答,我的CSV有两列;第一列包含多个数据,包括项目代码和项目名称,第二列包含与第一列对应的数据谢谢您的快速回答,我的CSV有两列;第一列包含多个数据,包括项目代码和程序名称,第二列包含与第一列对应的数据