【问题标题】:How to convert CURL command with python requests and retrieve results via API如何使用 python 请求转换 CURL 命令并通过 API 检索结果
【发布时间】:2020-07-14 14:43:26
【问题描述】:

我是 python 新手,在传递下面我想通过 API 从服务器请求的参数时遇到了问题。

我正在使用烧瓶,因为我希望它是基于网络的。 第一步:进入 index.html 并传递 teamID teamID = request.form['teamID']。 Step2:通过API认证用户并通过teamID查找数据 Step3:进入页面report.html并显示结果+将结果保存为CSV文件

import subprocess
import json 
import requests
from flask import Flask, render_template, request

#required parameters
myID = 12345 
teamID = 3456
includeSub = 0 
beginDate = "2020-03-20 00:00:00"
endDate = "2020-03-22 00:00:00" 
Type = 1 
authToken = "1245dgfdfg655432gf"
serverURL = https://myurl.com/env/re/

#optional parameters
Category = 1
fpDate = 1
versionP = "1.0"
-----------------

这是我想转换成 python 请求格式的 CURL 命令:

#Curl command that i need to covert to python requests format
 "curl -X POST -H \"Content-Type: application/json\" -H \"accessToken:" & authToken & "\" \"" & serverURL & "teamID/" & teamID & "/report\" -d $'" & commandBody & "'"

到目前为止我的代码:

app = Flask(__name__)

@app.route('/reports', methods=['POST'])
def getmyTeamReport(authToken, myID):
teamID = request.form['teamID']
headers = { 'accept': 'application/json', 
        'Content-Type': 'application/json', 
        'accessToken': authToken,
        'userID': myID}
commandBody = {
  "teamID": teamID,
  "includeSub": includeSub,
  "beginDate": beginDate,
  "endDate": endDate,
  "Category": Category,
  "fpDate": fpDate,
  "versionP": versionP
}
endpoint ='/report'
r = requests.get(serverURL+teamID+endpoint+headers=headers+commandBody=commandBody)
json_object = r.json()
report_t = json_object
return render_template('report.html', report=report_t)

@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

有人可以帮忙吗?到目前为止,我尝试了上面的代码,但收到了 SyntaxError: invalid syntaxTabError: inconsistent use of tabs and spaces in indentation

提前致谢!

【问题讨论】:

  • 到目前为止你尝试过什么?你能分享你现在拥有的python代码吗?
  • 嗨,bmcculley!我更新了我的问题,如果这有什么好处,请告诉我...仍在尝试上面的代码,但无法到达那里...谢谢!

标签: python curl flask python-requests flask-restful


【解决方案1】:

感谢TrillWorks,我们现在有了一个在线 curl 到 python 的转换器。
所以对于:

curl -X POST -H \"Content-Type: application/json\" -H \"accessToken:" & authToken & "\" \"" & serverURL & "teamID/" & teamID & "/report\" -d $'" & commandBody & "'

你有:

import requests

headers = {
    '\\Content-Type': 'application/json" -H "accessToken:',
}

response = requests.post('http://&', headers=headers)

它是可用的HERE


为了避免TabError

app = Flask(__name__)
@app.route('/reports', methods=['POST'])
def getmyTeamReport(authToken, myID):
teamID = request.form['teamID']
headers = { 'accept': 'application/json', 'Content-Type': 'application/json','accessToken': authToken,'userID': myID}
commandBody = {"teamID": teamID,"includeSub": includeSub,"beginDate": beginDate,"endDate": endDate,"Category": Category,"fpDate": fpDate,"versionP": versionP}
endpoint ='/report'
r = requests.get(serverURL+teamID+endpoint+headers=headers+commandBody=commandBody)
json_object = r.json()
report_t = json_object
return render_template('report.html', report=report_t)
@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

【讨论】:

    猜你喜欢
    • 2018-09-27
    • 2020-08-15
    • 1970-01-01
    • 2018-10-21
    • 2017-05-25
    • 1970-01-01
    • 2018-05-08
    • 2017-07-12
    • 2020-09-08
    相关资源
    最近更新 更多