2016-08-29 44 views
1

私は以下のpythonコードを使用してURLからデータを読み取ります。 unixのcurlコマンドが動作します。しかし、私はPythonの変数に返されたJSONを格納しようとすると、それは常に空白です。PythonのCurlコマンド出力を変数に格納するSubprocess

任意のポインタ?私はSpyderコンソールで出力を見るが、決して変数にはない。

p =sp.Popen(["curl","-i","-X", "POST" ,"-H", "Content-Type:application/json" ,"-H", "Authorization:Basic NEg0VU9QR1BZODAWVI4N1dLUFpXRzp4SVpxUUkzbUFuVG9RUlJDcXBLWkdB","-d", '{ "grant_type": "client_credentials" }', "https://rridata.wikimapia.com/v1.0/oauth/token/"], stdout = sp.PIPE, shell=False) 
#p =sp.check_output(['curl','-i','-X', 'POST' ,'-H', 'Content-Type:application/json' ,'-H', 'Authorization:Basic NEg0VU9QR1BZODATEpDc2oyNGRGa0c5SVpxUUkzbUFuVG9RUlJDcXBLWkdB','-d', '{ "grant_type": "client_credentials" }', 'https://rdata.wikimapia.com/v1.0/oauth/token/']) 
out,err = p.communicate() 
print out 

EDIT:私の環境の詳細。私はWindows 7で、Anaconda Spyder IDEからコマンドを実行しています。

答えて

0

したがって、私は私は電話をかける前にプロキシを設定する必要が

os.environ['https_proxy']="https://iss-uk.corporate.pb.com:80" 
p =sp.Popen(["curl","-i","-X", "POST" ,"-H", "Content-Type:application/json" ,"-H", "Authorization:Basic NEg0VU9QR1BZODAWVI4N1dLUFpXRzp4WG1HczbUFuVG9RUlJDcXBLWkdB","-d", '{ "grant_type": "client_credentials" }', "https://rridata.wikimapia.com/v1.0/oauth/token/"], stdout = sp.PIPE, shell=False) 
#p =sp.check_output(['curl','-i','-X', 'POST' ,'-H', 'Content-Type:application/json' ,'-H', 'Authorization:Basic NEg0VU9QR1BZODATEpDc2oyNGRGa0c5SVpxUUkzbUFuVG9RUlJDcXBLWkdB','-d', '{ "grant_type": "client_credentials" }', 'https://rdata.wikimapia.com/v1.0/oauth/token/']) 
out,err = p.communicate() 
print ("out:",out,"err:",err) 

私は休憩を取るべき理由だこと: - 。。/

0

あなたがそうのように、stdoutとstderrをキャプチャするためにサブプロセスPIPEを使用することができます。私の悪い:(

が実は、私はファイアウォールの背後にある安全な接続の午前

>>> import subprocess 
>>> p = subprocess.Popen(["curl", "https://google.co.uk"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
>>> print p.stdout.read() # <-- you can assign a variable to the content of stdout 
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> 
<TITLE>301 Moved</TITLE></HEAD><BODY> 
<H1>301 Moved</H1> 
The document has moved 
<A HREF="https://www.google.co.uk/">here</A>. 
</BODY></HTML> 
関連する問題