我正试图将一个df从pythhon上传到sql server
步骤:
- 从excel(xlsx(导入的文件-确定
- sqlalchemy引擎-正常
错误:系统错误:<类"pyodbc.ProgramingError">返回了一个包含错误集的结果。预期字节,找到str
from sqlalchemy import create_engine
import urllib
import pandas as pd
df.to_sql('table_name', con=engine, if_exists='replace', index=False)
df.info()
给出:
col1 5490 non-null int64
col2 5414 non-null object
col3 5490 non-null object
col4 5490 non-null object
col5 3921 non-null object
col6 5490 non-null object
col7 5490 non-null int64
col8 5490 non-null object
col9 5490 non-null object
col10 5490 non-null object
在sql表中,列类型为[int]
和[varchar](max)
错误追溯TypeError:需要字节,str找到
我的任务是更改df对象的编码,如下所示:
for name, values in df.iteritems():
if df[name].dtype == 'object':
print(name)
print(df[name].dtype)
df[name] = df[name].str.encode('utf-8')
#print(chardet.detect(df[name][0])['encoding'])
return df
在编码到utf-8之后,上传到sql服务器是成功的