вставка запроса в таблицу базы данных вызывает у меня проблему

#python #postgresql

#python #postgresql

Вопрос:

 for jp_number in datadict:
ct_id = "".join(datadict[jp_number]).replace("'", '')
  
insert_query = """INSERT INTO dwb_weekly_snapshot(jp_number, ct_id) VALUES(%s, %s)"""
cursor.execute(insert_query, (jp_number,ct_id))
 

Я получаю ‘M’: ‘оператор не существует: переменный символ = числовой’ как ошибку

jp_number — это varchar(20) и ct_id (текст) в таблице, которую я пробовал точно по приведенному выше запросу

Та же ошибка, что и для

 update_query = """update dwb_weekly_snapshot set ct_id= %s where jp_number = %s """
 cursor.execute(update_query, (ct_id, imnumber))
 

Комментарии:

1. jp_number — это основной номер в таблице

Ответ №1:

вы говорите, что Jp_number — это varchar(20) в вашей таблице, тогда почему вы приводите к int в своем операторе execute? удалите значение int(xx) и попробуйте

Комментарии:

1. на самом деле я использую цикл for, и значение jpnumber исходит из этого, повторяя datadictionary в python @saro пожалуйста, обновите qn, я его отредактировал

Ответ №2:

Jut преобразованный inumber = str(imnumber) Это сработало, потому что в таблице есть varcharb 20