且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

将JSON数据导入Django View / Template

更新时间:2022-10-16 10:00:01

您可以使用 urllib.urlopen 获取外部JSON数据,像这样:

 从urllib import urlopen 

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


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)

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