Python数据库查询返回JSON仅获单行数据的问题及解决需求
解决多行JSON数据返回问题
哦,我知道问题出在哪了!你现在的代码里,return语句放在循环里面了——只要第一次循环执行到return,整个函数就直接结束了,后面的查询结果根本没机会被处理,所以只能返回单行数据。
要返回所有查询结果的JSON数组,你需要先把所有数据收集到一个列表里,再一次性返回这个列表:
方法一:普通循环收集数据
ann = Announcements.query.all() # 创建一个空列表用来存所有数据字典 result_list = [] for data in ann: # 把每条数据转成字典,添加到列表中 result_list.append({ 'date': data.date, 'title': data.title, 'content': data.content }) # 把整个列表传给jsonify返回,会自动转成JSON数组格式 return jsonify(result_list)
方法二:用列表推导式简化代码
如果想让代码更简洁,可以用Python的列表推导式一步完成数据收集:
ann = Announcements.query.all() result_list = [ {'date': data.date, 'title': data.title, 'content': data.content} for data in ann ] return jsonify(result_list)
这样返回的结果就是标准的JSON数组格式,比如:
[{"content": "content1", "date": "date1", "title": "title1"}, {"content": "content2", "date": "date2", "title": "title2"}]
这种格式前端也能轻松解析处理所有数据。
内容的提问来源于stack exchange,提问作者Lee Merlas
相关产品推荐
相关产品推荐

