我使用Python 3.9并从salesforce中提取数据。我想将数据插入SQL Server表中。所有操作都很好,直到我要插入的字段之一显示为None(空(。SQL Server表有一个类型为Float的列,有些记录有该列的数据,有些则没有(因此,等于NULL(。
当在没有数据的情况下执行INSERT语句时;预期收入;列("无"(,并且其中对应的列是Float并且期望获得Float数据类型(而不是"无">
pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Error converting data type varchar to float. (8114) (SQLExecDirectW)')
INSERT语句类似于:
cursor.execute('''INSERT INTO [SOME DB].[dbo].[SOME TABLE] (Id, IsDeleted, Name, ExpectedRevenue) VALUES(?,?,?,?) ''',(Id, IsDeleted, Name,ExpectedRevenue) )
在上面的示例中,表中的最后一列是Float,字段名称与变量名称相同。
请协助
错误是因为数据中的NaN值。python中的sql server Null等价物是None对象,因此如果要在sql server中插入Nulls,则必须使用None更改所有NaN:df.where((pd.notnull(df)), None)
没关系。。。我的坏,但它工作得很好的";无";插入