Как преобразовать команду CURL с python запросами и получить результаты через API - PullRequest
1 голос
/ 02 апреля 2020

Я новичок в python и столкнулся с проблемами при передаче параметров ниже, которые я хочу запросить с сервера через API.

Я использую flask, так как я хочу, чтобы это было в сети. , Шаг 1: go для индексации. html и передачи teamID teamID = request.form['teamID']. Шаг 2: Аутентификация пользователя через API и поиск данных по teamID. Шаг 3: Go к отчету о странице. 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"
-----------------

Это команда CURL, которая мне нужна преобразовать в python формат запросов:

#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 syntax или TabError: inconsistent use of tabs and spaces in indentation

Заранее спасибо!

1 Ответ

1 голос
/ 06 апреля 2020

Благодаря TrillWorks теперь у нас есть онлайн-конвертер для 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)

Имеется в наличии ЗДЕСЬ .


Во избежание 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...