Ich benutze PostgreSQL v9.4.12 und ich versuche, eine jsonb Spalte zu aktualisieren. Ich möchte das gesamte Json-Objekt und nicht einen bestimmten Schlüssel des Objekts aktualisieren.Aktualisieren Sie JSON-Feld in PostgreSQL mit JSON, das einzelnes Anführungszeichen enthält
Ich verwende ein Python dict
, um mein Objekt zu speichern, und bevor ich es benutze, verwende ich json.dumps()
, um es in einen json formatierten String umzuwandeln. Allerdings hat ein Wert des JSON ein einfaches Anführungszeichen '
, das beim Aktualisieren einen psycopg2.ProgrammingError: syntax error
auslöst.
Bisher habe ich versucht:
"UPDATE table "
"SET jsonb_column='{} ".format(json.dumps(new_data)) + ""
"WHERE id='12345'"
Beachten Sie, dass new_data
meine dict ist und jsonb_column
ist der Name der Spalte, die die JSON-Daten zu halten.
Der Fehler Ich erhalte:
psycopg2.ProgrammingError: syntax error at or near "s"
LINE 1: ...code": "BR3", "short_description": "This property's price is...
^
ich davon aus, dass json.dumps()
das Apostroph entkommt aber scheint nicht, dass der Fall zu sein. Gibt es eine Lösung, um diesen Fehler zu beheben?
Vielen Dank im Voraus.
jsonb? .. 9.3? .. sicher? –
Hoppla! Es ist 9.4.12, die ich benutze. – christinabo
Die '{}' innerhalb der Zeichenfolge ist die einfache Positionierungsformatierung https://pyformat.info/ – christinabo