I am trying to create a script for an API request for a vmware application. I need to pass a variable from a dictionary in payload. Here is the code which was able to develop from postman and output is taken as "python requests":- import requests url = "url@domain/api-path" payload = "{\r\n \"name\" : \"VC Adapter Instance\",\r\n \"description\" : \"A vCenter Adapter Instance\",\r\n \"collectorId\" : \"1\",\r\n \"adapterKindKey\" : \"VMWARE\",\r\n \"resourceIdentifiers\" : [ {\r\n \"name\" : \"AUTODISCOVERY\",\r\n \"value\" : \"true\"\r\n }, {\r\n \"name\" : \"PROCESSCHANGEEVENTS\",\r\n \"value\" : \"true\"\r\n }, {\r\n \"name\" : \"VCURL\",\r\n \"value\" : \"vcenter_name\" \r\n } ],\r\n \"credential\" : {\r\n \"id\" : null,\r\n \"name\" : \"Added Credential\", \r\n \"adapterKindKey\" : \"VMWARE\",\r\n \"credentialKindKey\" : \"PRINCIPALCREDENTIAL\",\r\n \"fields\" : [ {\r\n \"name\" : \"USER\",\r\n \"value\" : \"administrator@vsphere.local\" \r\n }, {\r\n \"name\" : \"PASSWORD\",\r\n \"value\" : \"Hidden-Password \" \r\n } ],\r\n \"others\" : [ ],\r\n \"otherAttributes\" : { }\r\n },\r\n \"monitoringInterval\" : 1,\r\n \"others\" : [ ],\r\n \"otherAttributes\" : { }\r\n}\r\n" headers = { 'Accept': 'application/json', 'Authorization': 'Hidden Token', 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data = payload) print(response.text.encode('utf8')) However I need I want to pass the highlighted vcenter_name as a dictionary value something like this:- import requests url = "url@domain/api-path" Inputs = {‘vcenterkey’ : ‘vcenter_name’} payload = "{\r\n \"name\" : \"VC Adapter Instance\",\r\n \"description\" : \"A vCenter Adapter Instance\",\r\n \"collectorId\" : \"1\",\r\n \"adapterKindKey\" : \"VMWARE\",\r\n \"resourceIdentifiers\" : [ {\r\n \"name\" : \"AUTODISCOVERY\",\r\n \"value\" : \"true\"\r\n }, {\r\n \"name\" : \"PROCESSCHANGEEVENTS\",\r\n \"value\" : \"true\"\r\n }, {\r\n \"name\" : \"VCURL\",\r\n \"value\" : \"inputs[‘vcenterkey’] \" \r\n } ],\r\n \"credential\" : {\r\n \"id\" : null,\r\n \"name\" : \"Added Credential\", \r\n \"adapterKindKey\" : \"VMWARE\",\r\n \"credentialKindKey\" : \"PRINCIPALCREDENTIAL\",\r\n \"fields\" : [ {\r\n \"name\" : \"USER\",\r\n \"value\" : \"administrator@vsphere.local\" \r\n }, {\r\n \"name\" : \"PASSWORD\",\r\n \"value\" : \"Hidden-Password \" \r\n } ],\r\n \"others\" : [ ],\r\n \"otherAttributes\" : { }\r\n },\r\n \"monitoringInterval\" : 1,\r\n \"others\" : [ ],\r\n \"otherAttributes\" : { }\r\n}\r\n" headers = { 'Accept': 'application/json', 'Authorization': 'Hidden Token', 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data = payload) print(response.text.encode('utf8') ) Attaching screen shots for reference. After adding inputs[‘vcenterkey’] in the payload , instead of the value in vcenter_name I am getting the exact `inputs[‘vcenterkey’] displayed in the payload which causes the API to fail in the script. Continue reading...