LoginSignup
0
0

More than 3 years have passed since last update.

psycopg2でTypeError: argument 1 must be a string or unicode object: got tuple insteadと言われたとき

Last updated at Posted at 2021-02-21

エラーを吐くコード

理由: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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0