I am trying to post a HTTP
request. I have managed to get the code to work but I am struggling returning some of the result.
The result looks like this
{ "requestId" : "8317cgs1e1-36hd42-43h6be-br34r2-c70a6ege3fs5sbh", "numberOfRequests" : 1893 }
I am trying to get the requestId but I keep getting the error Response' object is not subscriptable
import json import requests workingFile = 'D:\\test.json' with open(workingFile, 'r') as fh: data = json.load(fh) url = 'http://jsontest' username = 'user' password = 'password123' requestpost = requests.post(url, json=data, auth=(username, password)) print(requestpost["requestId"])
The TypeError: 'int' object is not subscriptable error occurs if we try to index or slice the integer as if it is a subscriptable object like list, dict, or string objects. The issue can be resolved by removing any indexing or slicing to access the values of the integer object.
Set objects are unordered and are therefore not subscriptable.
The “TypeError: 'type' object is not subscriptable” error is raised when you try to access an object using indexing whose data type is “type”. To solve this error, ensure you only try to access iterable objects, like tuples and strings, using indexing.
In Python, strings, lists, tuples, and dictionaries fall in subscriptable category.
The response
object contains much more information than just the payload. To get the JSON data returned by the POST request, you'll have to access response.json()
as described in the example:
requestpost = requests.post(url, json=data, auth=(username, password)) response_data = requestpost.json() print(response_data["requestId"])
You should convert your response to a dict:
requestpost = requests.post(url, json=data, auth=(username, password)) res = requestpost.json() print(res["requestId"])
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With