如何在Django中循环json文件并将其作为HttpRespones返回?

2024-05-15 21:58:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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\u load中获取结果时,它只返回文件中第一项的值。这是我的密码。你知道吗

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

但这段代码只返回如下的第一个数据:

   1 COCO

我想这样回来:

   1 COCO
   2 THOR
   3 IRONMAN

谢谢你。你知道吗


Tags: 文件数据idjsontitleloadrootmovie
1条回答
网友
1楼 · 发布于 2024-05-15 21:58:41

一个简单的解决方法是将其附加到列表中。你知道吗

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个查询

相关问题 更多 >