【问题标题】:Importing JSON data into Django View/Template将 JSON 数据导入 Django 视图/模板
【发布时间】:2014-01-30 01:29:12
【问题描述】:

所以我正在做一个项目,我使用来自石墨图的 json 数据,我试图将其导入 django views.py 文件,然后在模板中获取我想要的值。导入将来自远程 URL,而不是直接来自服务器本身。

这是我的 json:

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

这就是我的视图文件的样子

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

我试过了,但它不起作用主要是因为 json open 并不是要从外部拉取。

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

【问题讨论】:

    标签: python django json import django-views


    【解决方案1】:

    您可以简单地使用urllib.urlopen 获取外部 JSON 数据,如下所示:

    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
    

    【讨论】:

    • 感谢这很好用!!! :) 所以现在在我的模板中我调用了 {{ stock }} 我将不得不使用 django 过滤器来过滤该数据吗?我真的只想要(最后:4204.0)那部分,但使用 cut 对我来说没问题 :) 这对我有用,只是想看看是否有更有效的方法{{ stocks|cut:"[{u'target': u'stocks.shared (last: "|slice:":4" }}
    • 我建议解析视图中的值。您可以通过stocks[0]['target'].split()[2].strip(')') 来完成。
    猜你喜欢
    • 2013-03-13
    • 2015-09-18
    • 2013-01-21
    • 2020-03-19
    • 2019-02-16
    • 2018-08-29
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多