I trying to pass JSON as an argument to python script using Powershell but everything getting new issues in python script. I am new to python so not sure whats wrong with script.
import json, sys, traceback
import requests
from aws_requests_auth.aws_auth import AWSRequestsAuth
try:
if(len(sys.argv)>1):
print("*** json.dumps() ***")
print(json.dumps(sys.argv[1]))
print("**** json.loads() ****")
print(json.loads(sys.argv[1]))
print("**** json.dumps-loads() ****")
print(json.loads(json.dumps(sys.argv[1])))
jsonInput = json.loads(json.dumps(sys.argv[1]));
print(jsonInput['endpoint']);
print(jsonInput['headers']);
print(jsonInput['method']);
except Exception as e:
output ={}
output['error_message'] = e
output['status_code']='1050'
print(output)
This is how I am running command in PowerShell:
python C:\Folder\server\agent\scripts\PythonLibrary\cloudAPIInvoker.py '"{""endpoint"":""https://XXXXXX.execute-api.us-west-2.vpce.amazonaws.com/dev/transit-connectivity/api/v1/user"",""method"":""post"",""headers"":{""x-apigw-api-id"":""xxxx""},""queryParam"":"""",""body"":{""site_id"":""XXXXXXX"",""account_id"":""XXXXX"",""change_request"":""RITM0021337"",""customer_id"":""0000000"",""provider"":""aws"",""customer"":""new"",""region"":""us-east-1"",""network_id"":""vpc-00000000"",""cidr"":""10.10.10.0/00"",""egress_filter"":[""""],""route_tables"":[],""transit_connected"":true,""high_availability"":true,""service_now_notify"":true,""public_subnets"":[""10.10.10.0/00"",""10.10.00.00/00""]}}"'
Here is the output: Anyone has seen a similar issue?
*** json.dumps() ***
"{\"endpoint\":\"https://XXXXXX.execute-api.us-west-2.vpce.amazonaws.com/dev/transit-connectivity/api/v1/user\",\"method\":\"post\",\"headers\":{\"x-apigw-api-id\":\"xxxx\"},\"queryParam\":\"\",\"body\":{\"site_id\":\"XXXXXXX\",\"account_id\":\"XXXXX\",\"cha
nge_request\":\"RITM0021337\",\"customer_id\":\"0000000\",\"provider\":\"aws\",\"customer\":\"new\",\"region\":\"us-east-1\",\"network_id\":\"vpc-00000000\",\"cidr\":\"10.10.10.0/00\",\"egress_filter\":[\"\"],\"route_tables\":[],\"transit_connected\":true,\"
high_availability\":true,\"service_now_notify\":true,\"public_subnets\":[\"10.10.10.0/00\",\"10.10.00.00/00\"]}}"
**** json.loads() ****
{'endpoint': 'https://XXXXXX.execute-api.us-west-2.vpce.amazonaws.com/dev/transit-connectivity/api/v1/user', 'method': 'post', 'headers': {'x-apigw-api-id': 'xxxx'}, 'queryParam': '', 'body': {'site_id': 'XXXXXXX', 'account_id': 'XXXXX', 'change_request': 'R
ITM0021337', 'customer_id': '0000000', 'provider': 'aws', 'customer': 'new', 'region': 'us-east-1', 'network_id': 'vpc-00000000', 'cidr': '10.10.10.0/00', 'egress_filter': [''], 'route_tables': [], 'transit_connected': True, 'high_availability': True, 'servi
ce_now_notify': True, 'public_subnets': ['10.10.10.0/00', '10.10.00.00/00']}}
**** json.dumps-loads() ****
{"endpoint":"https://XXXXXX.execute-api.us-west-2.vpce.amazonaws.com/dev/transit-connectivity/api/v1/user","method":"post","headers":{"x-apigw-api-id":"xxxx"},"queryParam":"","body":{"site_id":"XXXXXXX","account_id":"XXXXX","change_request":"RITM0021337","cu
stomer_id":"0000000","provider":"aws","customer":"new","region":"us-east-1","network_id":"vpc-00000000","cidr":"10.10.10.0/00","egress_filter":[""],"route_tables":[],"transit_connected":true,"high_availability":true,"service_now_notify":true,"public_subnets"
:["10.10.10.0/00","10.10.00.00/00"]}}
{'error_message': TypeError('string indices must be integers'), 'status_code': '1050'}