postgresql 为什么我的api响应没有插入postgres

xjreopfe  于 2022-12-03  发布在  PostgreSQL
关注(0)|答案(2)|浏览(124)
dictionary = testEns(idSession)
    columns = dictionary.keys()
    for i in dictionary.values():
        sql2='''insert into PERSONS(person_id , person_name) VALUES{};'''.format(i)
     
        cursor.execute(sql2)

函数testEns(idSession)包含一个API调用的结果,该调用返回一个已转换为字典的xml响应。
我试图将响应插入到postgres数据库中创建的表中,但我得到了以下错误。知道为什么吗?我错过了什么?

psycopg2.errors.SyntaxError: syntax error at or near "{"
LINE1: ...nsert into PERSONS(person_id, person_name) VALUES{'category...

在我将VALUES{id,name}更改为VALUES(id,name)之后
我有此错误

psycopg2.errors.UndefinedColumn: column "id" does not exist
LINE 1: ...sert into PERSONS(person_id , person_name) VALUES(id, name)

即使我的表PERSONS是在pgadmin中创建的,其中列id和name

dzjeubhm

dzjeubhm1#

您的SQL语句看起来不对,我认为您需要类似以下的语句:

sql2='''insert into PERSONS (person_id , person_name) VALUES (%s, %s);'''
cursor.execute(sql2, (i.person_id, i.person_name))

这里假设属性名称为i

v9tzhpje

v9tzhpje2#

您的行

sql2 = '''insert into PERSONS(person_id , person_name) VALUES{};'''.format(i)

应固定

sql2 = '''INSERT INTO PERSONS (person_id, person_name) VALUES (value1, value2, ...)'''.format(i)

相关问题