import http.client, urllib.request, urllib.parse, urllib.error, base64
headers = {
# Request headers
'Content-Type': 'application/json',
'Ocp-Apim-Subscription-Key': '{subscription key}',
}
params = urllib.parse.urlencode({
# Request parameters
'numberOfLanguagesToDetect': '{integer}',
})
body={
"documents": [
{
"id": "string",
"text": "string"
}
]
}
try:
conn = http.client.HTTPSConnection('westus.api.cognitive.microsoft.com')
conn.request("POST", "/text/analytics/v2.0/languages?%s" % params, str(body), headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror)
iam new to python and json.I want to know whether body object used in the code is a json object
or a python object.
It's neither, rather a dictionary.
It could be saved as a json object, probably would be best choice
thank you sir.so as i understand "body" is a python dictionary,and in the code the json input is being stored in the python dictionary called "body"..iam i right?..thanks again
You should use
Requests.
Data payload to server is a Python dictionary.
Requests has build in json decoder,it will do encoding inn and out of server(can just call
json()
).
Eg:
>>> import requests
>>> data = {"device_name": "Super-pc", "Type": "DevicePort", "page_size": 2}
>>> r = requests.post('http://httpbin.org/post', json=data)
>>> r.status_code
200
>>> r.json()
{'args': {},
'data': '{"device_name": "Super-pc", "page_size": 2, "Type": "DevicePort"}',
'files': {},
'form': {},
'headers': {'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate',
'Content-Length': '65',
'Content-Type': 'application/json',
'Host': 'httpbin.org',
'User-Agent': 'python-requests/2.9.1'},
'json': {'Type': 'DevicePort', 'device_name': 'Super-pc', 'page_size': 2},
'origin': '83.143.86.75',
'url': 'http://httpbin.org/post'}
>>> data = r.json()
>>> data['json'].get('device_name', 'Not on server')
'Super-pc'
>>> data['json'].get('hello', 'Not on server')
'Not on server'
You should mask origin
key and value from the output :)
Not so important for me,because i am behind VPN(
Astrill which i have used for 6-years).