如何在python或shell脚本中使用mongodbexport

时间:2014-06-08 04:51:45

标签: python mongodb

我想通过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文件。"

谢谢

1 个答案:

答案 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)