read_sql и Python обрабатывают значения "none" - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь записать «нулевые» значения в базу данных Postgresql, используя Python.Это можно сделать, отправив значения «Нет» в базу данных.У меня есть две версии кода.Один работает, а другой нет.

Как заставить pd.read_sql работать с приведенным ниже кодом?

data_w = None

sql = ("""insert into temp (field_1, field_2, field_3) values(%s, %s,%s)""") 

df = pd.read_sql(sql, con=db, params = (temp_id, temp_process, data_w))

Error: 
columns = [col_desc[0] for col_desc in cursor.description]
TypeError: 'NoneType' object is not iterable

Однако приведенный ниже код работает.

cursor.execute(""" insert into temp (field_1, field_3) values (%s,%s)""", (temp_id, data_w))

Я новичок, если вам не нравится вопрос, то, пожалуйста, не делайте этого.Дайте мне знать, и я просто удалю сообщение.Я публикую здесь только после достаточного поиска.

Лучший

1 Ответ

0 голосов
/ 01 июня 2018

Это всего лишь предположение.

Первый случай, кажется, пытается перебрать результат выполнения, как если бы оператор SQL возвратил строки для прохождения.Однако это оператор insert, который не возвращает никаких строк.Вы уверены, что вам нужно использовать функцию pd.read_sql() в этом случае?

Второй случай не пытается что-либо прочитать из результата выполнения и работает как ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...