Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Postgres正在将NaN放入空值中_Python 3.x_Postgresql_Null_Nan_Psycopg2 - Fatal编程技术网

Python 3.x Postgres正在将NaN放入空值中

Python 3.x Postgres正在将NaN放入空值中,python-3.x,postgresql,null,nan,psycopg2,Python 3.x,Postgresql,Null,Nan,Psycopg2,我正在python脚本上使用psycopg2 脚本解析json文件,并将它们放在Postgres RDS中 当json文件中缺少一个值时,脚本将跳过特定列 (因此它应该在表中设置null值,但它将NaN) 有人遇到过这个问题吗 检查列是否为空的部分- 如果(str(df.loc[0][col])==”或df.loc[0][col]为None或str(df.loc[0][col])=='None'或str(df.loc[0][col col])=='NaN或str(df.loc[0][col co

我正在python脚本上使用
psycopg2

脚本解析json文件,并将它们放在Postgres RDS中

当json文件中缺少一个值时,脚本将跳过特定列

(因此它应该在表中设置
null
值,但它将
NaN

有人遇到过这个问题吗

检查列是否为空的部分-

如果(str(df.loc[0][col])==”或df.loc[0][col]为None或str(df.loc[0][col])=='None'或str(df.loc[0][col col])=='NaN或str(df.loc[0][col col])='null'):
落差(柱,轴=1,原地=真)
其他:
cur.execute(“调用mrr.add_column_to_table('{0}','{1}');”。格式(table_name,col))
插入部分-

def copy_df_to_sql(df,conn,table_name):
如果len(df)>0:
df_columns=列表(df)
列=“,”。联接(df_列)#创建(col1,col2,…)
#创建值('%s','%s',…)每列一个'%s'
values=“values({})”.format(“,”.join([%s”表示df_列中的u]))
#创建插入到表(列)中的值('%s',…)
emp='“'
insert_stmt='insert INTO mrr.{}({}{}{}{}){}'。格式(表名、emp、列、emp、值)
cur=连接光标()
导入psycopg2.extras
psycopg2.extras.execute\u batch(cur、insert\u stmt、df.values)
康涅狄格州提交
当前关闭()

好的,所以发生这种情况的原因可能是因为pandas将
null
值视为
NaN


因此,当我在中向表中插入数据帧时,将
null
值插入为null,这是
NaN

NaN表示“不是数字”。在代码的某个地方,您将字段视为一个数字。您能否至少向我们展示插入数据的代码?!我已经从脚本中添加了相关部分df是什么类型的?