簡體   English   中英

如何循環遍歷 json 文件並將其作為 HttpRespones 在 Django 中返回?

[英]How can I loop through json file and return it as HttpRespones in Django?

我的 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

謝謝你。

你有嘗試過嗎?

iter_response = ["{} {}".format(r['id'], r['movie_title']) for r in json_load['results']]
result_response = "/n".join(iter_response)
return HttpResponse(result_response)

一個簡單的解決方法是將其追加到列表中。

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個查詢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM