0

これは些細なことのように思えますが、正しい答えはどこにも見つかりません。psycopg を使用して、フィールドに 2 つの一重引用符を挿入する必要があります。つまり、列内に格納される値は次のとおりです。''

何を試しても、\'\'( ''''Postgres のドキュメントに従って入力として試行すると) エスケープされるか、エラーが発生します。

これを解決する方法はありますか?

4

2 に答える 2

2

リテラル"''"を挿入する必要がある場合は、バインドされた変数も必要ありません。正しいSQLを記述してください(リテラルの一重引用符は、2つとして「引用符で囲まれている」ことを忘れないでください。 '")。例ははるかに理解しやすいです:

curs.execute("INSERT INTO foo VALUES ('''''')")

それ以外の場合は、2つの引用符を変数に割り当てて、psycopgに引用符を実行させることができます。

curs.execute("INSERT INTO foo VALUES (%s)", ("''",))

cursor.executeで必要とされるように、タプルを構成するための余分な括弧とコンマに注意してください。

于 2012-04-25T18:19:41.907 に答える
0

psycopg2 doc を参照します

cursor.execute("INSERT INTO foo VALUES (%s)", ("''",))
于 2012-04-25T15:49:44.370 に答える