Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python将大型csv文件导入sql server_Python_Sql Server_Csv - Fatal编程技术网

使用python将大型csv文件导入sql server

使用python将大型csv文件导入sql server,python,sql-server,csv,Python,Sql Server,Csv,我已将一个csv文件拉入python,需要将其插入sql server。我已经用一个较小的文件成功地完成了这项工作,但是我正在尝试导入的当前文件有超过600000行。当我使用较大的文件运行代码时,它将运行几分钟,然后我得到以下错误 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 15: ordinal not in range(128) 我的代码如下 engine = create_engine('mss

我已将一个csv文件拉入python,需要将其插入sql server。我已经用一个较小的文件成功地完成了这项工作,但是我正在尝试导入的当前文件有超过600000行。当我使用较大的文件运行代码时,它将运行几分钟,然后我得到以下错误

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 15: ordinal not in range(128)
我的代码如下

engine = create_engine('mssql+pyodbc://'+UID+':'+PWD+'@'+DATABASE)

data = pd.read_csv(r'C:\Users\username\file', chunksize=10000)
for i in data:   
    i.to_sql(u'table1', engine,if_exists='replace',index=False)

print "My program took", time.time() - start_time, "to run"

尝试使用
pd.read\u csv(r'C:\Users\greicher\file',chunksize=10000,encoding='utf8')
如果可能,尝试使用批量插入。这是将数据插入mssql的最快方法。我已经添加了编码='utf8',我还没有收到错误,但它已经运行了至少30分钟。我以前尝试过大容量插入,但我没有权限“编码”属性回答了您的问题,您可能想就性能问题询问一个新的属性。使用
csv模块
而不是
pandas
将提高性能并最大限度地减少内存占用。