如何通过python使用curl命令

如何通过python使用curl命令,python,curl,Python,Curl,我想在他们的文档中向keen.io发送一个json文件,他们使用以下命令 curl "https://api.keen.io/3.0/projects/PROJECT_ID/events/EVENT_COLLECTION?api_key=WRITE_KEY" -H "Content-Type: application/json" -d @purchase1.json 我在想如何使用它来处理python,您可以使用请求库来实现这一点 import requests uri = "https://

我想在他们的文档中向keen.io发送一个json文件,他们使用以下命令

curl "https://api.keen.io/3.0/projects/PROJECT_ID/events/EVENT_COLLECTION?api_key=WRITE_KEY" -H "Content-Type: application/json" -d @purchase1.json
我在想如何使用它来处理python,您可以使用请求库来实现这一点

import requests
uri = "https://api.keen.io/3.0/projects/{}/events/{}?api_key={}".format(PROJECT_ID, EVENT_COLLECTION, API_KEY)
json_payload = open('purchase1.json', 'rb').read()
requests.post(uri, json=json_payload)

有关详细信息,您可以阅读它们的。

您还可以使用subprocess执行命令,然后捕获输出。

您可以使用subprocess模块使用subprocess.call方法运行curl命令

例如:


是否要使用Python模块执行此操作?或者只是运行一个GNU程序,比如curl use Python?我尝试使用sub-process我得到一个错误消息文件/usr/lib/python2.7/subprocess.py,第1327行,在_execute_child raise child_exception OSError:[Errno 2]没有这样的文件或目录这意味着curl没有找到你的json文件。尝试使用完整路径,如/home/user/foobar/purchase1.json,也可以在os模块中尝试os.system函数。第二,我建议使用打开文件。
 subprocess.call('curl "https://api.keen.io/3.0/projects/PROJECT_ID/events/EVENT_COLLECTION?api_key=WRITE_KEY" -H "Content-Type: application/json" -d @purchase1.json', shell=true)