I need to use the below Python dictionary to be passed as a payload to REQUEST POST call
Dictionary:
api_body_dict= {}
api_body_dict['loc1'] = {}
api_body_dict['loc1']['fName'] = var_fname1
api_body_dict['loc1']['source'] = var_source
api_body_dict['loc2'] = {}
api_body_dict['loc2']['fName'] = var_fname2
api_body_dict['loc2']['IDs'] = []
api_body_dict['loc2']['IDs'] = ID_list
api_body_dict['loc3'] = {}
api_body_dict['loc3']['fName'] = var_fname3
When passed to the below POST call throws an error below:
headers = {'Content-type': 'application/json'}
response = requests.post('https://API',json=api_body_dict, verify=False, headers=headers)
Error :
{'errors': [{'code': '5000', 'title': 'Unhandled Exception', 'detail': 'Supressed', 'status': 500, 'severity': 'FATAL', 'source': 'IndexOutOfBoundsException : Index 1 out of bounds for length 1'}]}
When passing the below JSON directly then it is running fine.
json = {"loc1": {"fName": "XYZ", "source":"db"}, "loc2": {"fName": "PQR", "IDs":["123","789"]},"loc3": {"fName":"ABC"}}
It failed when tried passing payload as api_body_dict or json.loads(json.dumps(api_body_dict)) or different combinations of this.
Any suggestions how to handle this error?
A 500 code is a Internal server Error code so the payload is incorrect or the request is incorrect.
I believe your issue is the IDs key.
It should be "groupIDs":
you can also write the actual dictionary out with the variables embeded.
Hope this helped.
Just added an example of the code I would run. just make sure that the method is correct so it is a post. also are there any required headers that are missing.