我试图在 sql 数据库中搜索名字为“blah”的所有用户,并通过 ajax 调用将该数据返回到我的 html。我有这样的单个用户的功能:
user = db.execute(
'SELECT * FROM user WHERE genres LIKE ?', (str,)
).fetchone()
user_details = {
'first': user['first'],
'last': user['last'],
'email': user['email']
}
y = json.dumps(user_details)
return jsonify(y)
现在对于多个用户,我希望结构看起来像这样:
users{
user1_details = {
'first': user['first'],
'last': user['last'],
'email': user['email']
}
user2_details = {
'first': user2['first'],
'last': user2['last'],
'email': user2['email']
}
user3_details = {
'first': user3['first'],
'last': user3['last'],
'email': user3['email']
}
}
循环生成每个 user_details。我知道我可以使用 fetchall() 来查找所有用户,但我如何连接详细信息?
最佳答案
在查询后获取所有行,然后根据需要构建结果。
示例:
db = mysql.connection.cursor()
# query
db.execute('SELECT * FROM user')
# returned columns
header = [x[0] for x in db.description]
# returned rows
results = db.fetchall()
#data to be returned
users_object = {}
#structure results
for result in results:
users_object[result["user_id"]] = dict(zip(header,result))
return jsonify(users_object)
正如您在“#structure results”下看到的那样,您只需遍历结果并将每一行的数据插入到 users_object 中,例如键等于“user_id”。
如果您想要数组中的结果,只需将 users_object 转换为数组即可,例如users_array 并将字典附加到循环中的数组
关于python - 如何在python中的循环中连接结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53292039/