Python 将数据类型从dataframe保存到SQL Server表
我有一个数据帧(最初来自csv)Python 将数据类型从dataframe保存到SQL Server表,python,sql-server,sql-insert,Python,Sql Server,Sql Insert,我有一个数据帧(最初来自csv) df=pd.read\u excel(r'r:\\uu测试服务器\dailystatus\DailyWork10.18.xlsx') 我创建了一个dataframe来处理行中的一些空值。我还在SQL Server中创建了表,并定义了列类型(datetime、int和varchar) 我正在构建一个插入字符串,以将数据插入SQL Server中的一个新表中 insert\u query='insert到[DailyStatus].[dbo].[StatusRep
df=pd.read\u excel(r'r:\\uu测试服务器\dailystatus\DailyWork10.18.xlsx')
我创建了一个dataframe来处理行中的一些空值。我还在SQL Server中创建了表,并定义了列类型(datetime
、int
和varchar
)
我正在构建一个插入字符串,以将数据插入SQL Server中的一个新表中
insert\u query='insert到[DailyStatus].[dbo].[StatusReports]值中(
对于范围内的i(df.shape[0]):
对于范围内的j(df.形状[1]):
插入_query+=(df[df.columns.values[j][i])+,'
insert_query=insert_query[:-1]+'),('
insert_query=insert_query[:-3]+');'
我的输出是:
INSERT INTO [DailyStatuses].[dbo].[StatusReports] VALUES (3916, 2019-10-17 16:45:54...
我经常遇到关于数据类型的错误,是否最好将所有内容都定义为str,以便更容易插入SQL Server(并将表中的每一列定义为str)并在以后提取时定义数据类型?您最好使用参数,但根据您提出的问题,您必须分别处理每种数据类型 对于int值,您可以按原样使用它们 对于字符串值,必须在其周围加上单引号,即“值”,并且还需要用两个单引号替换任何嵌入的单引号 对于日期时间值,应使用不受区域设置影响的格式,并在其周围加引号,即“20191231 12:54:54” 另一种选择(如您所建议的)是将它们全部作为字符串引入,并在SQL Server中进行清理和数据类型更改。这通常是一个更可靠的方向。不过,不要忘了在值中将任何嵌入的单引号加倍