2017-01-25 26 views
-1

jsonの配列をjsonオブジェクトに変換するjqコマンドがあります。コマンドは、Windows端末において正常に動作しますが、私は私のpythonプログラムにそれを実装しようとすると、私はこれを取得:JQ:エラー:PythonでJQコマンドが機能しない

Could not open file >newfile.json: Invalid argument. 

ここでは動作し、NEWFILEに変換JSONを置く私JQコマンドです。 JSON:ここ

jq ".[]" data.txt >newfile.json 

は私のサブプロセスの呼び出しが私のPythonプログラムである:

subprocess.call('jq ".[]" data.txt >newfile.json', cwd=r'C:/Users/john/Desktop/swag', shell=True) 
+0

リダイレクトなどのシェル機能を処理するには、 '' shell = True''を呼び出しに追加する必要があります。 – jasonharper

+0

私はすでにこれをやってしまいました。申し訳ありませんが私の質問にそれを追加することを忘れましたが、それは私の問題を解決しませんでした。 –

+2

明らかにWindows固有の問題です。 Windowsシステムをテストすることはできませんが、簡単な答えは、シェルに依存することを回避して、すべてのことを行うソリューションを提供することです。 –

答えて

0

は、出力ファイルを自分で開いて、あなたが明白であり、これは(シェルの動作に依存する必要はありませんあなたのためにそれをするために、現在のケースでは動作しません)。

subprocess.call(['jq', '.[]', 'data.txt'], 
    cwd=r'C:/Users/john/Desktop/swag', 
    stdout=open('C:/Users/john/Desktop/swag/newfile.json', 'w')) 
関連する問題