Как подставить переменную в данные для выполнения запроса POST с помощью urllib2 - PullRequest
0 голосов
/ 25 июня 2019

Я хочу взять winusername и winpassword от пользователя в качестве аргумента, а затем использовать его в моем теле запроса POST.Но, к сожалению, он не может заменить переменные.

Если я жестко закодировал значения winusername и winpassword в моем разделе «data» запроса POST, он работает абсолютно нормально.

#!/usr/bin/python

import urllib2
import base64
import json


# Collect all the inputs from the user
username = str(sys.argv[1])
password = str(sys.argv[2])
winusername = str(sys.argv[3])
winpassword = str(sys.argv[4])


data = '{\n    "extra_vars": {\n        "win_user": "% winusername",\n        "win_pass": "% winpassword"\n    }\n}'

request = urllib2.Request("https://awx-myorganization.net/api/v2/job_templates/212/launch/")
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)
request.add_header('Content-Type', 'application/json')
CreateResponse = urllib2.urlopen(request,data)

data1 = json.load(CreateResponse)

Ожидаемые результаты: winusername и winpassword должны быть взяты от пользователя в качестве аргумента и переданы в раздел «data» запроса POST.

Примечание: я использую Python версии 2.6

1 Ответ

0 голосов
/ 26 июня 2019

Я получил это работает.

Произошла ошибка в синтаксисе.Подстановка переменной будет - "win_user": "'+ winusername +'"

...