curl - 如何使用 python 执行curl命令

  显示原文与译文双语对照的内容
113 3

我想在 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()

错误消息是'解析错误'。任何人都可以告诉我如何修复它?或者如何正确地从服务器获得响应?

时间:原作者:0个回答

134 4

为了简单起见,也许你应该考虑使用标准库请求( ) 。

具有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)
原作者:
...