У меня есть Python API, который вставляет данные в таблицу Postgres, используя хранимую процедуру, которая принимает jsonb и выполняет вставку в таблицу. Пример:
create function insert_new_employee(i jsonb) returns json as:
$$
begin
insert into newhire(name, payload) values (i ->> 'name', i)
end
$$
Когда я выполняю тестовую вставку с использованием клиента SQL, например datagrip, он вставляется успешно:
select insert_new_employee('{"name":"alfred"}')
Однако, когда я использую Python API, полезная нагрузка преобразуется в:
"{\"name\":\"alfred\"}"
Из-за экранирования имя не анализируется и не сохраняется в столбце имени, однако столбец полезной нагрузки jsonb принимает его.
Есть ли у Postgres способ очистить и справиться с экранированием символов при передаче запроса через API?