Requests.post ошибка | TypeError: post () принимает как минимум 1 аргумент (1 дан) - PullRequest
0 голосов
/ 18 ноября 2018

Я использую Python 2.7.10 64-bit.В методе update_jira_field я получаю следующую ошибку:

TypeError: post () принимает как минимум 1 аргумент (1 дано)

Я пробовал также requests.put(), комбинация json = payload при объявлении полезной нагрузки как json, но все равно получена та же ошибка.

Я не уверен, что я делаю неправильно, никогда не сталкивался с этой ошибкой при использовании модуля запросов.

import requests
import json
import urllib2

auth = *****
propertKey = 'customfield_13557'
headers = {'Accept':'application/json','Bearer':****'}

def get_jira_real_id(jiraKey):
    endpoint = 'https://****.atlassian.net/rest/api/3/issue/{0}'.format(jiraKey)
    response = requests.get(endpoint, headers = headers, auth = auth)
    if response.status_code == 200:
        print "Success getting Jira Id"
        response = json.loads(response.text)
        return response['id']

def update_jira_field(jiraId,jiraKey):
    endpoint = 'https://****.atlassian.net/rest/api/3/issue/{0}'.format(jiraId)
    payload = dict({"fields": {"customfield_13557":{"self": "https://****.atlassian.net/rest/api/3/customFieldOption/14915", "value": "Yes", "id": "14915"}}})
    response = requests.post(endpoint = endpoint, headers = headers, auth = auth, data = payload)
    if response.status_code == 200:
        print "Success! Updated", jiraId, jiraKey

jiraList = ['****']
for jiraKey in jiraList:
    jiraId = get_jira_real_id(jiraKey)
    update_jira_field(jiraId, jiraKey)

print "Done Done Done"

Есть идеи, почему я получаю эту ошибку?и как мне это исправить?

1 Ответ

0 голосов
/ 18 ноября 2018

Вы пытаетесь передать именованный параметр с именем endpoint, но правильное имя - url.Это будет работать, если вы измените строку на

response = requests.post(endpoint, headers = headers, auth = auth, data = payload)
...