У меня есть хранимая процедура, где мне нужно передать "null" в качестве значения для запроса
Вот дикты:
dict1 = {'name':'apple', 'age':23, 'place':None, 'year':None, 'country': ''}
Примечание. Значения всегда будут меняться для соответствующих клавиш.
Я пробовал это, но он не работает для моего сценария, поскольку он/она имеет постоянные значения и не имеет пустых строк, как и я. Как вставить значения "NULL" в базу данных PostgreSQL с помощью Python?
Я попытался передать значения как None на месте null, но python принимает его как None, а не null. Его бросает мне сообщение об ошибке psycopg2.ProgrammingError: column "none" does not exist
Как передать значение dict1 None в качестве значения null для хранимого запроса proc, как показано ниже, используя python?
select * from sampletable."getvalues"('apple', 23, null, null, '')
None
них не преобразован в NULL
помощью psycopg2
, независимо от того, есть ли функции в запросе или нет. Это правильный способ передачи словаря в cursor.execute()
:
dict1 = {'name':'apple', 'age':23, 'place':None, 'year':None, 'country': ''}
query = cur.mogrify('select * from func(%(name)s, %(age)s, %(place)s, %(year)s, %(country)s)', dict1)
print(query)
Выход:
b"select * from func('apple', 23, NULL, NULL, '')"
mogrify()
предназначен только для просмотра запроса, просто замените его наexecute()
чтобы выполнить запрос. Трудно отладить код, который я не вижу. Пожалуйста, отредактируйте вопрос и покажите свой код Python, чтобы кто-то мог помочь вам.