我想通过mongodbexport
从mongodb创建一个json输出通过此命令在终端中正确操作:
sudo mongoexport --db mydb --collection url_db --query '{"state": "processed"}' --out /mongodb_json/name.JSON
但我如何在shell脚本或subprocess.call
的python中使用它我在python中使用这段代码:
call(["mongoexport", "--db","mydb","--collection","url_db","--query","'{\"state\": \"processed\"}'","--out ",outfile],shell=True)
但它会产生此错误:"未指定任何集合!" ,"将MongoDB数据导出为CSV,TSV或JSON文件。"
谢谢
答案 0 :(得分:3)
如果您通过list
传递参数,则需要删除shell = True
参数,否则只使用列表的第一个元素来构造子进程调用(仅在这种情况下) mongoexport
被称为
call(["mongoexport", "--db","mydb","--collection","url_db","--query","'{\"state\": \"processed\"}'","--out ",outfile])
当您将命令作为shell = True
而不是string
list
call("mongoexport --db mydb --collection url_db --query '{\"state\": \"processed\"}' --out " + outfile, shell=True)