我的python函数返回一个查询结果:
class Arc_Nodes_Data(Resource):
def get(self):
#Connect to databse
conn = connectDB()
cur = conn.cursor()
#Perform query and return JSON data
try:
cur.execute("SELECT start_location FROM trips UNION SELECT end_location FROM trips")
except:
print("Error executing select")
NodeList = list (i[0] for i in cur.fetchall())
return jsonify ({'id':NodeList})
此函数以下列格式返回结果:
{
"id": [
"a",
"b",
"c"
]
}
我在上面尝试了这个功能,输出可能是这样的:
[{
"id": "a"
}, {
"id": "b"
}, {
"id": "c"
}]
显然,我做错了什么。我似乎无法很好地操纵Python词典,所以也许这就是问题所在。如何获得正确的输出?
答案 0 :(得分:0)
您可以使用列表推导来实现您想要的目标:
return jsonify ([{'id': x} for x in Nodelist])
这种理解使得3个词典每个都包含一个id元素。
您还可以将最后一行合并到一行:
return jsonify ([{'id': i[0]} for i in cur.fetchall()])