我尝试在每次触发database_insert函数时将变量test_text的值插入到Postgres 9.6数据库中。
我使用的是Python 3.6和psycopg 2 v 2.7
如果我使用下面的代码而不使用占位符:例如用'test'替换%s并删除,(test_text)-它的工作原理与我预期的一样...
def database_insert(update):
test_text = 'This is some test text'
with psycopg2.connect("DB CONNECTION DETAILS ARE HERE'") as conn:
cur = conn.cursor()
cur.execute("INSERT INTO test VALUES(%s);", (test_text))
conn.commit()
cur.close()
conn.close()
然而,当函数尝试使用%s占位符插入test_text变量的值时,我得到以下错误...
cur.execute("INSERT INTO test VALUES(%s);", (test_text))
TypeError: not all arguments converted during string formatting
任何帮助,我在哪里去错了,这将是非常感谢!
1条答案
按热度按时间nhjlsmyf1#
这里有一个微妙的问题。
你需要一个逗号来组成一个元组,而不仅仅是括号。
因此,只需更改为:
你应该好好的!