Обновление и вставка данных в postgresql на python

Есть БД, бд получает данные из некого источника через api json. Данные в бд нужно обновить. Метод по обновлению должен заменять значения в таблицах если они изменились в api, если добавились новые строки то их нужно вставить в таблицу.

data_json  = json.loads(requests.get('https://.....').text)

Никак не пойму как сделать UPDATE и одновременно INSERT новой записи в таблицу из объекта API. Мой код:

for raw in data_json:
        cursor.execute(""" UPDATE table_name SET (PARAM1, PARAM2) = ('{0}', ARRAY{1}); """.format(
            raw['param1'],
            raw['param2']    
        ))

Но мой код вместо update новых значений заменяет все строки в таблице на первую строку из api объекта. В документации postgre приведены примеры с WHERE но я не пойму как сделать нужное условие, для моего кейса , так как мне нужно сравнить каждое значение с каждой строкой в таблице, а так же сделать вставку новой строки, если ее нет в таблице. Подскажите пожалуйста как более правильнее решить этот кейс.


Ответы (0 шт):