Обновление json поля в таблце postgres
Пытаюсь добавить к существующим json данным еще больше данных формата ключ : значение. Достаю данные ищ постгреса запросом к полю и получаю словарь. После чего просто добавляю к словарю доп пару ключ значение следующим образом:
conn=Connection()
a=conn.get_user_data(user_id)[0][0]
a['new']='data'
Получаю обновленный словарь со всем нужными полями:
a={'index': True, 'old':'data' , 'new':'data'}
После пытаюсь заполнить столбец новыми данными следующим образом:
a = str(a)
a = a.replace("'",'"')
query = '''UPDATE table SET data = ('{}') '''.format(a)
conn.cursor.execute(query)
conn.connection.commit()
Получаю следующую ошибку:
psycopg2.errors.InvalidTextRepresentation: invalid input syntax for type json LINE 1: UPDATE table SET data = ('{"inde... ^ DETAIL: Token "True" is invalid. CONTEXT: JSON data, line 1: {"index": True...
Есть ли другой способ обновить json поле в postgresql или как я могу исправить свой способ, учитывая, что 'index' содержит BOOL True в БД?
Источник: Stack Overflow на русском