加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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处理程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读