Python 从表中查询并作为JSON返回

Python 从表中查询并作为JSON返回,python,json,sqlalchemy,flask-sqlalchemy,Python,Json,Sqlalchemy,Flask Sqlalchemy,所以我试图从数据库中的表中进行查询。顺便说一句,我正在使用python。我想通过循环将它们作为JSON返回 但我只返回表中的一行,如下所示: { "content": "content1", "date": "date1", "title": "title1" } { "content": "content1", "date": "date1", "title": "title1" }, { "content": "content

所以我试图从数据库中的表中进行查询。顺便说一句,我正在使用python。我想通过循环将它们作为JSON返回

但我只返回表中的一行,如下所示:

{
    "content": "content1", 
    "date": "date1", 
    "title": "title1"
}
{
    "content": "content1", 
    "date": "date1", 
    "title": "title1"
},
{
    "content": "content2", 
    "date": "date2", 
    "title": "title2"
},
{
    "content": "content3", 
    "date": "date3", 
    "title": "title3"
}
这是我的密码:

ann = Announcements.query.all()

for data in ann:
    return jsonify({'date': data.date, 'title': data.title, 'content': data.content })
我想退回这样的东西:

{
    "content": "content1", 
    "date": "date1", 
    "title": "title1"
}
{
    "content": "content1", 
    "date": "date1", 
    "title": "title1"
},
{
    "content": "content2", 
    "date": "date2", 
    "title": "title2"
},
{
    "content": "content3", 
    "date": "date3", 
    "title": "title3"
}

我在这里遗漏了什么?

我想你应该先创建一个列表。并附加所有数据和jsonify。如果返回jsonify,则应使用方法

def jsonify(ann):
    my_list = []
    for data in ann:
      my_list.append({'date': data.date, 'title': data.title, 'content': data.content })
    return jsonify(my_list)
否则,您应该像这样在循环中打印数据

for data in ann:
   print(jsonify({'date': data.date, 'title': data.title, 'content': data.content }))

在for循环中有一个
return
,因此循环将在一次迭代后终止。您可能想创建一个列表,然后在循环中将字典附加到列表中。循环后返回json编码的列表。是的,我同意Ilja。JSON有两种数据类型:对象和数组。如果您在括号方面有问题,可以用子字符串替换。@IljaEverilä是的,我刚刚确认了。我的坏消息我将删除我的评论