2016-08-01 19 views
1

Ich versuche, eine JSON-Datei mit dem folgenden Befehl zu importieren: mongoimport -c collection -d db < file.json. Wenn ich diesen Befehl über die Shell aufruft, werden alle Dokumente importiert. Jedoch, wenn ich versuche, es aus einem Python-Skript mit dem Modul-Subprozess wie folgt aufzurufen: subprocess.call('mongoimport -c collection -d db < file.json', shell=True), ich habe den folgenden Fehler: Failed: error processing document #37: unexpected EOF. Kann mir jemand erklären warum es mit der Shell funktioniert aber nicht wenn es aus dem Skript aufgerufen wird bitte?Rufen Sie Mongoimport von Python-Skript

Vielen Dank im Voraus.

Antwort

1

Ich Sache ist, weil subprocess.Popen Konstruktor Liste der args akzeptiert, nicht Zeichenfolge, wie folgt aus:

p = subprocess.Popen(['mongoimport', '--db', 'AutoPrivilege', '-c','cars', 'stockvo.json', '--jsonArray', '--upsert','--drop'])...