PSQLの引用についてはここでたくさん見つけることができますが、この問題に完全に適合するものはありません。
まず、それは応急修理です。私はそれが応急修理であることを知っていますが、私はそれに固執していると思います(他の選択肢もありますが)
アクセスが制限されているほぼブラックボックスのサードパーティのLinuxアプライアンスがあり、bash、python、psqlを使用できます。psycopg2やその他のpgライブラリはありません。
使用するDBは、引用符で囲む必要のある大文字と小文字を区別するテーブル名を使用します(質問しないでください...)
そのため、現時点では、OSシェルコマンドを記述してデータを取得し、それをいじって必要に応じてJSONに変換します。
簡単な例:
pg_str = "psql -U pword dbname -A -t -c "
sql = "SELECT * FROM \"Addresses\" WHERE id=999"
os_str = pg_str + "\'" + sql + "\'" + ";"
data = string.split(os.popen(os_str).read())
問題ありません。私はそれがきれいだとは主張していませんが、それは機能します(dbライブラリをインポートできないことを忘れないでください...)
テキストフィールドにwhere句があると、すべてうまくいきません。
pg_str = "psql -U pword dbname -A -t -c "
sql = "SELECT * FROM \"Addresses\" WHERE town='london'"
os_str = pg_str + "\'" + sql + "\'" + ";"
data = string.split(os.popen(os_str).read())
引用符の組み合わせが多すぎて対処できません...?
私は明らかに多くのエスケープの組み合わせを試し、数時間グーグルしてきましたが、すべてのソリューションには、アクセスできないライブラリが必要なようです。
私はPythonやpsqlの専門家ではありません-これは私の現在の制限についてです。私はそれについて間違った方向に進んでいると確信していますが、現在、正しい方法を考え出すことに殴られています...