我的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
谢谢。
答案 0 :(得分:0)
您尝试过吗?
iter_response = ["{} {}".format(r['id'], r['movie_title']) for r in json_load['results']]
result_response = "/n".join(iter_response)
return HttpResponse(result_response)
答案 1 :(得分:0)
一种简单的解决方法是将其添加到列表中。
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个查询