所以我有这段代码:
@app.route("/")
def users():
try:
c, conn = connection()
c.execute(''' SELECT * FROM users ''')
rv = c.fetchall()
return jsonify(rv)
except Exception as e:
return(str(e))
,输出如下:
[
[
1,
"Robert Soriano",
"sorianorobertc@gmail.com",
24
],
[
2,
"Charmaine Villar",
"charmandervillar@hotmail.com\r\n",
23
]
]
但是因为我正在做一个宁静的api,我希望它在像以下的对象中:
[
{
1,
"Robert Soriano",
"sorianorobertc@gmail.com",
24
},
{
2,
"Charmaine Villar",
"charmandervillar@hotmail.com\r\n",
23
}
]
我尝试过类似的事情:
try:
c, conn = connection()
c.execute(''' SELECT * FROM users ''')
rv = list(c.fetchall()) #converted to list
return jsonify(rv)
except Exception as e:
return(str(e))
但我仍然得到相同的输出。
我在这里遗漏了什么吗?提前致谢
答案 0 :(得分:0)
我不知道你使用的db驱动程序。我用pymysql
进行测试。 cursor.fetchall()
及其中的元素的结果均为tuple
。您可以使用collections.namedtuple
为每条记录的每个元素指定字段名称。
Record = collections.namedtuple("Record", ["id", "name", "email", "age"])
result = cursor.fetchall()
records = [Record(*record)._asdict() for record in result]
有一个很棒的工具Records: SQL for Humans™可以帮到你。