この場合のパスワードの円記号は、エスケープ文字として解釈されます。 Pythonは\w
のバックスラッシュを処理します リテラル\
として \w
のため、生の文字列として指定されていない場合でも は有効なエスケープシーケンスではありませんが、基になるライブラリもエスケープシーケンスを解析します
したがって、円記号はエスケープ(2倍)する必要があります。
これを回避するには、接続パラメータをキーワード引数として指定します 代わりに:
psycopg2.connect(host=HOST,
database=DATABASE_NAME,
port=DATABASE_PORT,
user=DATABASE_USER,
password=DATABASE_PASSWORD)
これにより、パスワードの特殊文字に関する問題が回避されます。また、パスワードに一重引用符を付けると、接続文字列が切断されます。