【问题标题】:How can I loop through json file and return it as HttpRespones in Django?如何遍历 json 文件并将其作为 Django 中的 HttpRespones 返回?
【发布时间】:2019-07-28 02:45:02
【问题描述】:

我的 django 项目的静态文件夹中有一个 json 文件。我想返回每个数据的所有“id”和“title”。

我的 json 文件中有这些数据。

    {"results": [
        {"id": "1", "movie_title": "COCO","cast":["cast1","cast2"]},
        {"id": "2", "movie_title": "THOR","cast":["cast1","cast2"]},
        {"id": "3", "movie_title": "IRONMAN","cast":["cast1","cast2"]}]}

我有这段代码可以从 json 文件中返回所有数据。

    def polls(request):

        ROOT_FILE = STATIC_ROOT + '/polls/coming_soon.json'

        json_data = open(ROOT_FILE)
        json_load = json.load(json_data)

        return HttpResponse(json.dumps(json_load))

例如,我想只获取一些特定的值,例如“id”、“title”。但是当我尝试从 json_load 获取结果时,它只返回文件中第一项的值。这是我的代码。

    for r in json_load['results']:
        return HttpResponse(r['id'] + r['movie_title')

但是这段代码只返回这样的第一个数据:

   1 COCO

我想这样返回:

   1 COCO
   2 THOR
   3 IRONMAN

谢谢。

【问题讨论】:

    标签: python json django jsonresponse


    【解决方案1】:

    一个简单的解决方法是将它附加到一个列表中。

    json_data =  {"results": [
            {"id": "1", "movie_title": "COCO","cast":["cast1","cast2"]},
            {"id": "2", "movie_title": "THOR","cast":["cast1","cast2"]},
            {"id": "3", "movie_title": "IRONMAN","cast":["cast1","cast2"]}]}
    
    list1 = list()
    def function1():
            for r in json_data["results"]:
                    list1.append(r['id'] + ' '+  r['movie_title'])
    
    function1()
    
    for i in list1:
            print(i)
    
    # outputs
    
    1 COCO
    2 THOR
    3 IRONMAN
    

    您只收到 1 COCO 的原因是因为您只返回 1 个查询

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 2023-01-14
      • 1970-01-01
      • 1970-01-01
      • 2017-01-19
      相关资源
      最近更新 更多