Как передать Null в качестве значения для хранимого процесса для запроса postgresdb с помощью Python? - PullRequest
0 голосов
/ 15 октября 2018

У меня есть сохраненный процесс, в котором мне нужно передать 'null' в качестве значения для запроса

Здесь указывается:

dict1 = {'name':'apple', 'age':23, 'place':None, 'year':None, 'country': ''}

Примечание:значения будут всегда меняться для соответствующих ключей.

Я пробовал это, но это не работает для моего сценария, поскольку он / она имеет постоянные значения и не имеет пустых строк, как я. Как вставить значения 'NULL' в базу данных PostgreSQL с помощью Python?

Я пытался передать значения как None вместо null, но python принимает их как None not null.Это выдает ошибку: 1014 *

Как передать значение dict1 None в качестве значения NULL в хранимый запрос proc, как показано ниже, используя python?

select * from sampletable."getvalues"('apple', 23, null, null, '')

1 Ответ

0 голосов
/ 15 октября 2018

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, '')"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...