read_sql和Python处理“无”值

时间:2018-05-31 21:11:15

标签: python sql python-3.x postgresql python-2.7

我正在尝试使用Python将“Null”值写入Postgresql数据库。这可以通过向数据库发送“None”值来完成。我有两个版本的代码。一个是工作而另一个不是。

如何使用以下代码使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))

我是初学者,如果你不喜欢这个问题那么请“不要”downvote。让我知道,我将删除帖子。我只在做了足够的搜索后才在这里发帖。

最佳

1 个答案:

答案 0 :(得分:0)

这只是猜测。

第一种情况似乎是试图迭代执行的结果,就像SQL语句返回要经过的行一样。但是,这是一个insert语句,不返回任何行。在这种情况下,您确定需要使用函数pd.read_sql()吗?

第二种情况不会尝试从执行结果中读取任何内容并按预期工作。