エラーを吐くコード
理由:tupleを引数に与えているから。
import psycopg2
def insert_values(sql):
conn = psycopg2.connect(host=HOST,
user=USER,
password=PASSWORD,
dbname=DBNAME,
port=PORT)
cur = conn.cursor()
cur.execute(sql)
conn.commit()
if __name__ == "__main__":
sql = ('INSERT INTO test_table VALUES(%s, %s)',
('Taro', 5))
insert_values(sql)
解決策
unpack
cur.execute(*sql)
参考記事
psycopg2 documents
https://www.psycopg.org/docs/usage.html#passing-parameters-to-sql-queries