Pythonでcurlコマンドを実行したいです。
通常は、ターミナルにコマンドを入力してリターンキーを押すだけです。しかし、Python ではどのように動作するのかわかりません。
コマンドは以下のようになります:
curl -d @request.json --header "Content-Type: application/json" https://www.googleapis.com/qpxExpress/v1/trips/search?key=mykeyhere
request.json
応答を得るために送信するファイルがあります。
いろいろ調べましたが、混乱してしまいました。コードを書いてみましたが、完全に理解できず、動作しませんでした。
import pycurl
import StringIO
response = StringIO.StringIO()
c = pycurl.Curl()
c.setopt(c.URL, 'https://www.googleapis.com/qpxExpress/v1/trips/search?key=mykeyhere')
c.setopt(c.WRITEFUNCTION, response.write)
c.setopt(c.HTTPHEADER, ['Content-Type: application/json','Accept-Charset: UTF-8'])
c.setopt(c.POSTFIELDS, '@request.json')
c.perform()
c.close()
print response.getvalue()
response.close()
エラーメッセージは ですParse Error
。サーバーから正しく応答を取得するにはどうすればよいでしょうか?
ベストアンサー1
簡単にするために、リクエスト図書館。
JSON 応答コンテンツの例は次のようになります。
import requests
r = requests.get('https://github.com/timeline.json')
r.json()
さらに詳しい情報をお知りになりたい場合は、クイックスタートセクションには、実用的な例がたくさんあります。
特定の curl 翻訳の場合:
import requests
url = 'https://www.googleapis.com/qpxExpress/v1/trips/search?key=mykeyhere'
payload = open("request.json")
headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'}
r = requests.post(url, data=payload, headers=headers)