如何在 Python 中执行 curl 命令并获取响应并将其传递给其他代码

How to execute a curl command in Python and get the response and pass it through other code

我有一个 curl 命令。我想在 Python 中执行并获取响应以通过其他代码传递它。

curl https://api.box.com/oauth2/token -d 'grant_type=refresh_token' -d 'refresh_token=Ew38UXVKS3kc0axFt6MdDklUnoHpipxTzDWBmKlXAG9ImvGafbbaUhQndv89e677' -d 'client_id=3qkm5h4wh765b3khiws0z8hdpkc56jhs' -d 'client_secret=h9AeXzZL3KATJuaHmimFFBRBDZQrp9tr' -X POST

如何执行 Python 中的脚本并获取响应并将其传递给其他代码?

当我在 CMD 中执行 curl 脚本时,我得到了这样的响应:

{"access_token":"uz843jpIiEWnu0CcuT9as2XbA3UEQTR67","expires_in":4261,"restricted_to":[],"refresh_token":"GsDaP6VyUpHN8vDHbz9ktAjLfMLN0dFL6PMIK4fmDH8eKRqR360vDhQTBhIMZxy67","token_type":"bearer"}

从上面的回复中我需要取 access_token 值。

你应该使用 requests 库 (pip install requests)

import requests
url = 'https://api.box.com/oauth2/token'
data = {
    'grant_type':'refresh_token',
    'refresh_token':'***',
    'client_id':'***',
    'client_secret':'***'
}
response = requests.post(url, data).json()
print(response)

正如 avloss 所说 - 试试 requests

另一个重要资源是应用程序 Postman

它可以让您尝试任何您喜欢的 http 调用,然后还可以为您翻译 into/out of curl and/or python 请求代码(和一堆其他语言)。

我发现它在尝试弄清楚如何将 requests 用于简单的 http 调用以外的任何事情时非常有用。