[英]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.