Joey
Joey

Reputation: 350

Importing JSON data into Django View/Template

So im working on a project and im using json data from a graphite graph and im trying to import it into the django views.py file and then get the value I want in the template. The import will be happening from a remote URL not from directly on the server itself.

here is my json:

[{"target": "stocks.shared (last: 4204.0)", "datapoints": [[4379.0, 1389225600], [4204.0, 1389312000]]}]

This is what my views file will look like

def get_context_data(self, **kwargs):
    context = super(IndexView, self).get_context_data(**kwargs)
    context['stocks'] = JSON PULL
    return context

I tried this and It did not work mostly because json open is not meant to pull externally.

json_data=open('URL')
context['shared'] = json.load(json_data)

Upvotes: 0

Views: 1699

Answers (1)

niekas
niekas

Reputation: 9097

You can simply use urllib.urlopen to get external JSON data, like this:

from urllib import urlopen

def get_context_data(self, **kwargs):
    context = super(IndexView, self).get_context_data(**kwargs)
    my_stock_url = 'http://mystockpage.org/stocks/'
    context['stocks'] = json.loads(urlopen(my_stock_url).read())
    context['last_stock'] = stocks[0]['target'].split()[2].strip(')')
    return context

Upvotes: 2

Related Questions