How to get JSON from webpage into Python script How to get JSON from webpage into Python script json json

How to get JSON from webpage into Python script


Get data from the URL and then call json.loads e.g.

Python3 example:

import urllib.request, json with urllib.request.urlopen("http://maps.googleapis.com/maps/api/geocode/json?address=google") as url:    data = json.loads(url.read().decode())    print(data)

Python2 example:

import urllib, jsonurl = "http://maps.googleapis.com/maps/api/geocode/json?address=google"response = urllib.urlopen(url)data = json.loads(response.read())print data

The output would result in something like this:

{"results" : [    {    "address_components" : [        {            "long_name" : "Charleston and Huff",            "short_name" : "Charleston and Huff",            "types" : [ "establishment", "point_of_interest" ]        },        {            "long_name" : "Mountain View",            "short_name" : "Mountain View",            "types" : [ "locality", "political" ]        },        {...


I'll take a guess that you actually want to get data from the URL:

jsonurl = urlopen(url)text = json.loads(jsonurl.read()) # <-- read from it

Or, check out JSON decoder in the requests library.

import requestsr = requests.get('someurl')print r.json() # if response type was set to JSON, then you'll automatically have a JSON response here...


This gets a dictionary in JSON format from a webpage with Python 2.X and Python 3.X:

#!/usr/bin/env pythontry:    # For Python 3.0 and later    from urllib.request import urlopenexcept ImportError:    # Fall back to Python 2's urllib2    from urllib2 import urlopenimport jsondef get_jsonparsed_data(url):    """    Receive the content of ``url``, parse it as JSON and return the object.    Parameters    ----------    url : str    Returns    -------    dict    """    response = urlopen(url)    data = response.read().decode("utf-8")    return json.loads(data)url = ("http://maps.googleapis.com/maps/api/geocode/json?"       "address=googleplex&sensor=false")print(get_jsonparsed_data(url))

See also: Read and write example for JSON