psycopg2 python/flask Web アプリで postgres を使用しています。
私はエンコーディングの問題を抱えていますが、それは私が見逃している愚かなものであると確信しています (私はプログラミングが初めてです)。次のステートメントは完全に機能します。
cur.execute("SELECT column_name FROM information_schema.columns where table_name = %s;", (tablename,))
fetchall() を使用して、テーブル内の列名のリストを作成します。ただし、別のステートメントは機能しません。
cur.execute("ALTER TABLE %s ADD COLUMN %s varchar;", (tablename, col,))
エラーは次のとおりです。
psycopg2.ProgrammingError
ProgrammingError: syntax error at or near "E'flatresponses_1'"
LINE 1: ALTER TABLE E'flatresponses_1' ADD COLUMN E'What was the bes...
('flatresponses_1' は 'tablename' で、'What was the best...' は 'col' の始まりです。)
「print cur.query」を実行した結果は次のとおりです。
>>> print cur.query
>>> ALTER TABLE E'flatresponses_1' ADD COLUMN E'What was the best part of your ENT clinic visit today? Why?' varchar;
2 番目のクエリで E' エンコーディングを取得していますが、最初のクエリでは取得していません。str(tablename) も試しました。
何が足りないの?!