user3166599 user3166599 - 4 years ago 194
HTTP Question

Python requests: get attributes from returned JSON string

import requests
r = requests.get('http://httpbin.org/get');
r.text


returns:

u'{\n "url": "http://httpbin.org/get",\n "headers": {\n "Host": "httpbin.org",\n "Accept-Encoding": "gzip, deflate, compress",\n "Connection": "close",\n "Accept": "*/*",\n "User-Agent": "python-requests/2.2.1 CPython/2.7.5 Windows/7",\n "X-Request-Id": "db302999-d07f-4dd6-8c1e-14db45d39fb0"\n },\n "origin": "61.228.172.190",\n "args": {}\n}'


How can get the
origin
and
headers/Host
values?

thanks

Answer Source

What's being returned is a JSON string; you need to parse it before you can conveniently use it. Requests can do this for you if you call r.json() instead of r.text.

Then it's only a matter of doing:

resp = r.json()
print resp['origin']
print resp['headers']['Host']
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download