Python 如何将结果列表作为JSON返回?
我想以JSON的形式返回查询结果。我使用以下路径将一个模型实例作为JSON对象返回Python 如何将结果列表作为JSON返回?,python,sqlalchemy,flask-sqlalchemy,Python,Sqlalchemy,Flask Sqlalchemy,我想以JSON的形式返回查询结果。我使用以下路径将一个模型实例作为JSON对象返回 @mod.route('/autocomplete/<term>', methods=['GET']) def autocomplete(term): country = Country.query.filter(Country.name_pt.ilike('%'+ term + '%')).first() country_dict = country.__dict__ c
@mod.route('/autocomplete/<term>', methods=['GET'])
def autocomplete(term):
country = Country.query.filter(Country.name_pt.ilike('%'+ term + '%')).first()
country_dict = country.__dict__
country_dict.pop('_sa_instance_state', None)
return jsonify(json_list=country_dict)
我应该怎么做才能将整个结果列表作为JSON返回?您需要为列表中的每个项目执行“jsonify preparation step”,因为.all()
返回一个模型实例列表,而不仅仅是像.first()
这样的一个实例。处理每个\uuuu dict\uuuu
的副本,这样就不会弄乱SQLAlchemy实例的内部表示
@mod.route('/autocomplete/<term>', methods=['GET'])
def autocomplete(term):
countries = []
for country in Country.query.filter(Country.name_pt.ilike('%' + term + '%'):
country_dict = country.__dict__.copy()
country_dict.pop('_sa_instance_state', None)
countries.append(country_dict)
return jsonify(json_list=countries)
@mod.route('/autocomplete/',方法=['GET']
def自动完成(术语):
国家=[]
对于country.query.filter(country.name_pt.ilike('%'+term+'%')中的国家/地区:
国家/地区=国家/地区
国家/地区流行语(“国家/地区实例”,无)
国家。附加(国家/地区)
返回jsonify(json_list=countries)
最好只是显式地返回每个国家的数据,而不是尝试神奇地将实例JSONIZE化
@mod.route('/autocomplete/<term>', methods=['GET'])
def autocomplete(term):
countries = []
for country in Country.query.filter(Country.name_pt.ilike('%' + term + '%'):
countries.append({
'id': country.id,
'name': country.name_pt,
})
return jsonify(countries=countries)
@mod.route('/autocomplete/',方法=['GET']
def自动完成(术语):
国家=[]
对于country.query.filter(country.name_pt.ilike('%'+term+'%')中的国家/地区:
国家。附加({
“id”:country.id,
“名称”:country.name\u pt,
})
返回jsonify(国家=国家)
您需要为列表中的每个项目执行“jsonify preparation step”,因为.all()
返回一个模型实例列表,而不仅仅是像.first()
这样的一个实例。处理每个\u dict\u
的副本,这样就不会弄乱SQLAlchemy实例的内部表示
@mod.route('/autocomplete/<term>', methods=['GET'])
def autocomplete(term):
countries = []
for country in Country.query.filter(Country.name_pt.ilike('%' + term + '%'):
country_dict = country.__dict__.copy()
country_dict.pop('_sa_instance_state', None)
countries.append(country_dict)
return jsonify(json_list=countries)
@mod.route('/autocomplete/',方法=['GET']
def自动完成(术语):
国家=[]
对于country.query.filter(country.name_pt.ilike('%'+term+'%')中的国家/地区:
国家/地区=国家/地区
国家/地区流行语(“国家/地区实例”,无)
国家。附加(国家/地区)
返回jsonify(json_list=countries)
最好只是显式地返回每个国家的数据,而不是尝试神奇地将实例JSONIZE化
@mod.route('/autocomplete/<term>', methods=['GET'])
def autocomplete(term):
countries = []
for country in Country.query.filter(Country.name_pt.ilike('%' + term + '%'):
countries.append({
'id': country.id,
'name': country.name_pt,
})
return jsonify(countries=countries)
@mod.route('/autocomplete/',方法=['GET']
def自动完成(术语):
国家=[]
对于country.query.filter(country.name_pt.ilike('%'+term+'%')中的国家/地区:
国家。附加({
“id”:country.id,
“名称”:country.name\u pt,
})
返回jsonify(国家=国家)