想要使用 Python 和 PostgreSQL 将变量值插入到表列中

问题描述 投票:0回答:1

我有以下代码:

import psycopg2  
    import psycopg2
    conn = psycopg2.connect(database = 'xxxx', user = 'xxxx',password = 'xxxx',host = 'localhost', port = '5432')
    cur = conn.cursor()
    carl = 'Sioux Quartzite'
    sql = '''INSERT INTO GEOLOGY (FORM_NAME) VALUES (%s);''',(carl)
    cur.execute(sql) 
    conn.commit() 
    conn.close()

从Python返回的错误(QGIS中的错误)给了我以下错误代码:

很明显我是一个新手。我尝试了括号的每种组合,并尝试使用该论坛上接近的答案。我想做的就是将“carl”的值(即字符串“Sioux Quartzite”)插入到 PostGreSQL 中。我所有的选择都出现了类似的错误,只是sql语句让我困惑。

谢谢

Traceback (most recent call last):
  File "C:\PROGRA~1\QGIS32~1.3\apps\Python39\lib\code.py", line 90, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
  File "<string>", line 69, in <module>
TypeError: argument 1 must be a string or unicode object: got tuple instead
python postgresql variables insert
1个回答
0
投票

您的 sql 值是一个元组而不是字符串。

你可以像这样替换它以获得字符串:

sql = f'''INSERT INTO GEOLOGY (FORM_NAME) VALUES ({carl});'''

sql = '''INSERT INTO GEOLOGY (FORM_NAME) VALUES (%s);'''%(carl)

您有多种方法可以做到这一点。

这样这个错误信息就不会再出现了。

© www.soinside.com 2019 - 2024. All rights reserved.