首页 > 解决方案 > 无法在 PostgreSQL 11.0 表中插入数据

问题描述

我想将值插入到 postgresql 11.0 表中。但是,当我尝试这样做时,出现以下错误:

TypeError: not all arguments converted during string formatting

我正在运行以下代码:

#CREATE TABLE
try:
    connect_str = "dbname='xx' user='xx' host='xx' " "password='xx' port = xx"
    conn = psycopg2.connect(connect_str)
except:
        print("Unable to connect to the database") 

cursor = conn.cursor()
cursor.execute("""DROP TABLE IF EXISTS tbl""")

try:
    cursor.execute("""
            CREATE TABLE IF NOT EXISTS tbl(
            entry_id CHARACTER VARYING NOT NULL,
            name CHARACTER VARYING NOT NULL,
            class CHARACTER VARYING NOT NULL,
            ko_id CHARACTER VARYING NOT NULL,

            PRIMARY KEY (entry_id))
            """)
except:
        print("The table cannot be created!")
        
conn.commit()
conn.close()
cursor.close()
#INSERT DATA INTO TABLE
try:
    connect_str = "dbname='xx' user='xx' host='xx' " "password='xx' port = xx"
    conn = psycopg2.connect(connect_str)
except:
        print("Unable to connect to the database") 

cursor = conn.cursor()

with open ('file.txt') as f:
    for line in f:
        if re.match('^[A-Z]+',line) and line.startswith("ENTRY") or line.startswith("NAME") or line.startswith("CLASS") or line.startswith("KO_PATHWAY"):
            key, value = line.split(" ", 1)
            #print (key, value)
            if key == "ENTRY":
                cursor.execute("INSERT INTO tbl (entry_id) VALUES (%s)",('value'))
                
conn.commit()
conn.close()
cursor.close()

键值如下所示:

ENTRY       map00010                    Pathway

NAME        Glycolysis / Gluconeogenesis

CLASS       Metabolism; Carbohydrate metabolism

KO_PATHWAY  ko00010

ENTRY       map00011                    Pathway

NAME        Glycolysis

CLASS       Metabolism; Carbohydrate

KO_PATHWAY  ko00011

值 map00010 Pathway 和 map00011 Pathway 应插入表中并创建两行。

非常感谢任何帮助。

标签: postgresqlpsycopg2

解决方案


推荐阅读