如何修改Python Flask接口代码仅返回数据库结果中的genre_id值?
解决方案
你的数据库查询返回的是RealDictRow对象集合,每个对象包含genre_id字段。要让接口仅返回genre_id对应的值,只需遍历结果集提取目标字段即可:
修改后的代码:
@app.route('/actor_genre_list/<int:id>', methods=['GET']) def actor_genre_list(id): actor_genres = queries.get_actor_genres(id) # 提取所有行中的genre_id值,组成纯数值列表 genre_ids = [row['genre_id'] for row in actor_genres] return jsonify(genre_ids=genre_ids)
补充说明
- 把原变量名
genre_id改为actor_genres是为了避免和字段名混淆,提升代码可读性 - 列表推导式会遍历所有返回的查询结果,逐个提取
genre_id值,最终得到一个纯整数列表 - 如果你的业务逻辑确保只会返回单个
genre_id,也可以直接取第一个结果的字段值:
但更推荐列表形式,这样接口能兼容后续可能的多结果场景,避免出现索引越界错误。return jsonify(genre_id=actor_genres[0]['genre_id'])
内容的提问来源于stack exchange,提问作者Szalap94
相关产品推荐
相关产品推荐

