Невозможно обновить поле JsonField в Postgres с помощью необработанных запросов в Django

Я пытаюсь запустить этот код после миграции.

cursor.execute(f'UPDATE abc_model SET "abc_temp" = \'{{"0" : "{abc}" }}\' WHERE abc_model."id" = {id}')

Я получаю эту ошибку при использовании дампа следующей версии:

-- Dumped from database version 9.5.25
-- Dumped by pg_dump version 9.5.25
django.db.utils.DataError: invalid input syntax for type json
LINE 1: ...abc_model SET "abc_temp" = '{"0" : "M...
                                      ^
DETAIL:  Character with value 0x0a must be escaped.
CONTEXT:  JSON data, line 1: ...cum current detected the deviation from baseline.

Он работает нормально при использовании дампа следующей версии:

-- Dumped from database version 12.10 (Ubuntu 12.10-1.pgdg18.04+1)
-- Dumped by pg_dump version 14.2 (Ubuntu 14.2-1.pgdg18.04+1)

Я не уверен, вызвана ли эта проблема только разницей в версии дампа базы данных или из-за кодировки или чего-то еще.

Попробовать

cursor.execute(f”””UPDATE abc_model SET abc_temp = '{{"0" : "{abc}" }}' WHERE abc_model.id = {id}”””)
Вернуться на верх