为了账号安全,请及时绑定邮箱和手机立即绑定

是否有适用于批量插入 MS SQL Server 的 Python

是否有适用于批量插入 MS SQL Server 的 Python

catspeake 2021-09-28 21:19:26
使用quotechar'|'读取和写入CSV 在 Python 中下面的 csv 格式允许通过 Python 使用包含指定分隔符(在本例中为“,”)的列读取和写入文件。在这种情况下,“,”位于第二个条目的 B 值之间。AAAAA, |B,BB|, CCC以下 Python 代码可用于,例如将行写入文件:    with open(self.base_uri + filename, 'w') as f:            writer = csv.writer(f,                                delimiter=',',                                quotechar='|',                                quoting=csv.QUOTE_MINIMAL)            for row in data_list:                writer.writerow(row)批量插入 MS SQL Server 的困难当尝试使用 csv.file 在 MS SQL Server 中应用批量插入时,每行都会发生错误,其中包含一个quotechar:看看这里到目前为止,我使用的 SQL 代码如下所示:bulk insert DATABASEfrom 'C:\Users\XX\Documents\sample.csv'with(rowterminator='\n',fieldterminator=',')您对如何解决此问题有任何想法吗?MS SQL Server 中的 Python 中的quotechar 是否有任何等价物?
查看完整描述

3 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

我想你需要FIELDQUOTE:


指定将用作 CSV 文件中的引号字符的字符。如果未指定,引号字符 (") 将用作 RFC 4180 标准中定义的引号字符。


bulk insert DATABASE

from 'C:\Users\XX\Documents\sample.csv'

with

(

rowterminator='\n',

fieldterminator=',',

fieldquote = '|'

)

如果您使用的版本低于 2017,您可以使用quotechar equals 而"不是管道符号来生成您的CSV 


查看完整回答
反对 回复 2021-09-28
?
大话西游666

TA贡献1817条经验 获得超14个赞

我找到了另一种解决方案。我已将分隔符设置为管道 ( | ) 并将引号设置为 ( " )。感谢所有试图帮助我的人!


查看完整回答
反对 回复 2021-09-28
?
呼如林

TA贡献1798条经验 获得超3个赞

您可以尝试格式文件:如果您在第二列上应用了引号... [csvfile] 包含 AAAAA,"B,BB",CCC


Create Table csvfile

(

f1 VarChar(10),

f2 VarChar(10),

f3 VarChar(10)

)


BULK INSERT csvfile   

     FROM 'c:\downloads\sample.csv'   

     WITH (FORMATFILE = 'c:\downloads\sample.fmt'); 

样本文件


14.0

3

1       SQLCHAR             0       10      ",\""    1     f1       SQL_Latin1_General_CP1_CI_AS

2       SQLCHAR             0       10      "\","    2     f2       SQL_Latin1_General_CP1_CI_AS

3       SQLCHAR             0       10      "\r\n"   3     f3       SQL_Latin1_General_CP1_CI_AS



查看完整回答
反对 回复 2021-09-28
  • 3 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信