python mongoimport 错误插入文档失去与服务器的连接
python mongoimport error inserting documents lost connection to server
我正在尝试使用 python os 模块向 mongodb 插入一个 csv 文件,但出现此错误:
2016-03-02T05:25:23.718+0000 connected to: localhost
2016-03-02T05:25:23.731+0000 error inserting documents: lost connection to server
2016-03-02T05:25:23.731+0000 Failed: lost connection to server
2016-03-02T05:25:23.731+0000 imported 0 documents
我的代码是:
def uploadBulkProducts(self, new_products_file):
with open('new_products.csv','wb') as new_file:
for chunk in new_products_file.chunks():
new_file.write(chunk)
try:
os.system("mongoimport --db picknbox --collection temp_products --type csv --file new_products.csv --headerline")
os.remove('new_products.csv')
return True
except:
return False
我读了, this and thispost。他们都说我应该将批量大小限制为小于默认值 (10000)。但是我的 csv 文件中只有 1 行。
我的CSV FILE
我从终端尝试了同样的操作,但还是一样。我正在使用 MongoDB 版本 3.0.9
编辑:
我正在使用 django 将 csv 文件导入 mongodb 集合。我将文件保存到一个目录中。然后使用 mongoimport
命令导入文件。
我可以轻松保存文件,并且可以在我的目录中看到它。我确认 mongod 是 运行ning 。错误日志来自django开发服务器。
此代码在另一个项目中运行良好运行在相同版本上。
另外,当我 运行 从终端输入相同的 mongo 命令时,我得到了完全相同的错误。我 运行 在 mongo shell 中并排读取语句并且它工作正常。
您的 CSV 文件是 UTF-16 格式。在 unix 上,转换内容以允许它作为输入:
iconv -f UTF-16 -t ISO-8859-1 new_products.csv \
| mongoimport --db picknbox --collection temp_products --type csv --headerline
因此 iconv
实用程序将为您完成此操作,您可以将输出直接通过管道传输到 mongoimport
,或者转换为 mongoimport
.[=14 接受的格式=]
我正在尝试使用 python os 模块向 mongodb 插入一个 csv 文件,但出现此错误:
2016-03-02T05:25:23.718+0000 connected to: localhost
2016-03-02T05:25:23.731+0000 error inserting documents: lost connection to server
2016-03-02T05:25:23.731+0000 Failed: lost connection to server
2016-03-02T05:25:23.731+0000 imported 0 documents
我的代码是:
def uploadBulkProducts(self, new_products_file):
with open('new_products.csv','wb') as new_file:
for chunk in new_products_file.chunks():
new_file.write(chunk)
try:
os.system("mongoimport --db picknbox --collection temp_products --type csv --file new_products.csv --headerline")
os.remove('new_products.csv')
return True
except:
return False
我读了
我的CSV FILE
我从终端尝试了同样的操作,但还是一样。我正在使用 MongoDB 版本 3.0.9
编辑:
我正在使用 django 将 csv 文件导入 mongodb 集合。我将文件保存到一个目录中。然后使用 mongoimport
命令导入文件。
我可以轻松保存文件,并且可以在我的目录中看到它。我确认 mongod 是 运行ning 。错误日志来自django开发服务器。
此代码在另一个项目中运行良好运行在相同版本上。
另外,当我 运行 从终端输入相同的 mongo 命令时,我得到了完全相同的错误。我 运行 在 mongo shell 中并排读取语句并且它工作正常。
您的 CSV 文件是 UTF-16 格式。在 unix 上,转换内容以允许它作为输入:
iconv -f UTF-16 -t ISO-8859-1 new_products.csv \
| mongoimport --db picknbox --collection temp_products --type csv --headerline
因此 iconv
实用程序将为您完成此操作,您可以将输出直接通过管道传输到 mongoimport
,或者转换为 mongoimport
.[=14 接受的格式=]