尝试将数据框上传到MSSQL时,数据框上的分隔符错误



所以我一直试图将数据框上传到MSSQL下的特定表,我试图使用BCPANDAS库将数据上传到它。然而,有一个问题的数据,它有很多字符串包含多个字符。

我使用的代码如下:

from bcpandas import SqlCreds, to_sql
creds = SqlCreds(
'server',
'dbo',
'username',
'password'
)
to_sql(df,'targeted_table',creds,index = False, if_exists='append', schema='test')

但是每当我尝试上传数据时它都会产生这个错误

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:Usersjdc33AppDataLocalProgramsPythonPython39libsite-packagesbcpandasmain.py", line 394, in to_sql
delim = get_delimiter(df) if delimiter is None else delimiter
File "C:Usersjdc33AppDataLocalProgramsPythonPython39libsite-packagesbcpandasconstants.py", line 68, in get_delimiter
raise BCPandasValueError(error_msg.format(typ="delimiter", opts=_DELIMITER_OPTIONS))
bcpandas.constants.BCPandasValueError: Data contains all of the possible delimiter characters (',', '|', 't'),
cannot use BCP to import it. Replace one of the possible delimiter characters in
your data, or use another method besides bcpandas.
Further background:
https://learn.microsoft.com/en-us/sql/relational-databases/import-export/specify-field-and-row-terminators-sql-server#characters-supported-as-terminators

我认为正在发生的事情是,行中的数据有很多字符串,其中包含上述错误中提到的多个分隔符(',', '|', 't'),因此产生了如何上传数据的问题。我尝试将分隔符设置为上面提到的其中一个,方法是这样摄取文件:

testdf= pd.read_csv('data.csv',delimiter=',')

但是错误一直出现。

有人遇到这个错误并知道如何修复它吗?任何帮助都会很有帮助的

所以我设法用一个简单的错误修复来解决这个问题,根据上面问的问题,这个问题是分隔符存在于某些列的数据上,根据数据的深入研究,而不是弄乱它的完整性,我过去并替换了字符串","的所有实例,以便用bcpanda接收数据。

最新更新