Обновление и вставка данных в 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 но я не пойму как сделать нужное условие, для моего кейса , так как мне нужно сравнить каждое значение с каждой строкой в таблице, а так же сделать вставку новой строки, если ее нет в таблице. Подскажите пожалуйста как более правильнее решить этот кейс.