如何使用Python执行cURL命令?

285

我希望能够在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()

错误信息是解析错误。如何正确从服务器获取响应?


1
这个有帮助吗?https://dev59.com/_HE85IYBdhLWcg3wqlaE - br3w5
3
你考虑过使用“Python绑定到cURL”的pycurl吗?根据你的需求,它可能比在后台调用命令行实用程序更有效/方便。 - Sylvain Leroux
3
你需要使用 cURL 吗?你考虑过使用 Requests 吗?如果你刚接触 Python,可能会更简单,因为它往往不太友好。 - vch
我只是想指出这个关于如何在Python中执行shell命令的好答案:https://dev59.com/SnVD5IYBdhLWcg3wGXlI#92395 - tommy.carstensen
11个回答

-2
这是一种方法:
Import os
import requests 
Data = os.execute(curl URL)
R= Data.json()

使用os.system代替os.execute,并且在这种情况下似乎不需要使用requests。 - SeanFromIT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接