python – PyMongo和Flask的Jsonify包含转义斜杠
发布时间:2020-12-20 11:31:40 所属栏目:Python 来源:网络整理
导读:我正在尝试使用 Mongodb集合中的Flask做出回应: @app.route('/stories',methods = ['GET'])def get_stories(): stories = db.stories.find() json_docs = [json.dumps(doc,default=json_util.default) for doc in stories] resp = jsonify(data=json_docs)
我正在尝试使用
Mongodb集合中的Flask做出回应:
@app.route('/stories',methods = ['GET']) def get_stories(): stories = db.stories.find() json_docs = [json.dumps(doc,default=json_util.default) for doc in stories] resp = jsonify(data=json_docs) resp.status_code = 200 return make_response(resp) 这将获取所有项目并将其编码为JSON响应,但它看起来像这样: { "data": [ "{"content": "some story here","_id": {"$oid": "5293c34431e20307544db9cb"}}","{"content": "some story here","_id": {"$oid": "5293c34d31e20307584c3e6e"}}","_id": {"$oid": "5293c57d31e20307a7b40abe"}}" ] } 有没有办法使用单引号对此进行编码,因此它不会添加转义字符串?或者有什么我忽略的东西 解决方法
你编码两次:
json_docs = [json.dumps(doc,default=json_util.default) for doc in stories] resp = jsonify(data=json_docs) 现在json_docs中的每个条目都是表示JSON对象的字符串. 删除json.dumps()调用: resp = jsonify(data=stories) 或者使用带有Response()的flask.json.dump(): resp = Response(json.dumps({'data': stories},default=json_util.default),mimetype='application/json') 这使您可以在游标对象上使用json_util.default处理程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |