私はPostgreSQL v9.4.12を使用していますが、jsonbカラムを更新しようとしています。私はオブジェクトの特定のキーではなく、jsonオブジェクト全体を更新したい。シングル引用符を含むjsonでPostgreSQLのjsonbフィールドを更新します
私はオブジェクトを格納するためにPython dict
を使用しています。使用する前に、json.dumps()
を使用してjsonフォーマットのStringに変換しています。 しかし、更新しようとしている間に、jsonの値にpsycopg2.ProgrammingError: syntax error
をスローする単一引用符'
があります。
はこれまでのところ、私が試してみた:
"UPDATE table "
"SET jsonb_column='{} ".format(json.dumps(new_data)) + ""
"WHERE id='12345'"
注意をnew_data
は私の辞書であるとjsonb_column
はJSONデータを保持するカラムの名前であること。
エラー私は取得しています:
psycopg2.ProgrammingError: syntax error at or near "s"
LINE 1: ...code": "BR3", "short_description": "This property's price is...
^
私はjson.dumps()
は、単一引用符をエスケープが、それはケースのように思われないと仮定しました。このエラーを克服するソリューションはありますか?
ありがとうございます。
jsonb?.. 9.3?確かに? –
おっと!私が使っているのは9.4.12です。 – christinabo
文字列の中の '{}'は、単純な位置指定のフォーマットです。https://pyformat.info/ – christinabo