我正在尝试使用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。让我知道,我将删除帖子。我只在做了足够的搜索后才在这里发帖。
最佳
答案 0 :(得分:0)
这只是猜测。
第一种情况似乎是试图迭代执行的结果,就像SQL语句返回要经过的行一样。但是,这是一个insert
语句,不返回任何行。在这种情况下,您确定需要使用函数pd.read_sql()
吗?
第二种情况不会尝试从执行结果中读取任何内容并按预期工作。