0
私は動的にクエリを構築し、psycopg2パッケージを使用して実行しようとしています。今、私はこのコードを実行すると、私はエラーkwargs psycopg2でクエリを構築する
cursor.execute(sql, **kwargs)
TypeError: execute() got an unexpected keyword argument 'user_id'
を取得
def execute(sql, **kwargs):
with closing(psycopg2.connect(dbname=config.instance().db_name,
user=config.instance().db_user,
password=config.instance().db_password,
host=config.instance().db_host,
port=config.instance().db_port)) as conn:
with closing(conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)) as cursor:
cursor.execute(sql, **kwargs)
return cursor.fetchall()
:私が持っているクエリは次のようになります今私のクエリスクリプトでメソッドを実行
def get_employees_for_dept(dept_id):
sql = '''SELECT
emp.FirstName,
emp.LastName,
dep.DepartmentName
FROM Employee emp
JOIN Department dep
ON
dp.EmployeeID = emp.Id
WHERE
dp.Id = :dept_id''';
return query.execute(sql, dept_id=dept_id)
以下のようになります。文字列の書式設定や文字列作成をせずに、この作業を行うにはどうすればよいですか?
add_row(a = 1、b = "some")これは私のやり方とどのように違うのですか?値をハードコーディングする代わりに、関数が受け取ったものを渡しますか? –
コードサンプルでは、 'return query.execute(sql、{" dept_id ":dept_id})'と 'cursor.execute(sql、kwargs)'と書く必要があります。 – Rabash