Использование данных JSON из API GET для POST в другой API через скрипт Python - PullRequest
0 голосов
/ 07 декабря 2018

Итак, я новичок в python и борюсь, самоучка и все еще учусь кодировать.Так что будьте осторожны со мной :)

Я использую скрипт для получения данных из одного источника (API Jira) и пытаюсь использовать эти результаты для публикации в другом (PowerBi).

Мне удалось получить данных, я просто не знаю, как передать данные в этот другой API.

Я знаю, как использовать вызовы GET и POST, он просто использует данные от одного к другому, о чем я ничего не могу найти.Если предположить, что то, о чем я прошу, является очень конкретным?

edit: я также хочу упомянуть, что, пока мой запрос запрашивает конкретные данные, я получаю больше, чем мне действительно нужно.Поэтому мне нужен способ указать (надеюсь), какие данные на самом деле отправляются в API PowerBi

import json
import requests

url = 'https://mydomain.atlassian.net/rest/api/2/search'

headers = { 'Content-Type' : 'application/json',
        'Authorization' : 'Basic 123456789' }

params = {
   'jql' : 'project IN (, PY, CH, NW, RP, DP, KR, DA, RE, SS, CR, CD, AB) AND issueType=incident AND statusCategory!=Done',
   'startAt': 0,
   'maxResults' : 50,
}

requestget = requests.get(url, headers=headers, params=params)

if requestget.status_code == 200:
    print(json.dumps(json.loads(requestget.text), sort_keys=True, indent=4, separators=(",", ": ")))
else:
     print("None")

1 Ответ

0 голосов
/ 07 декабря 2018

Извиняюсь, если я пропустил, понял, о чем вы просили помощи, но вы могли бы использовать это для отправки запроса POST как json.

request = urllib.request.Request()#Put the powerbi api here
request.add_header('Content-Type', 'application/json; charset=utf-8')

jsondata = #your json data
jsonBytes = jsondata.encode('utf-8')

#Has to be bytes

request.add_header('Content-Length', len(jsonBytes))
response = urllib.request.urlopen(request, jsonBytes)

Вместо этого вы можете пойти с request.post.

jsondata = #put json data here

headers = {'content-type': 'application/json'}
response = requests.post(url, data=json.dumps(jsondata), headers=headers)

Запрашивает документацию

...