ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – PyMongo和Flask的Jsonify包含转义斜杠

2019-07-28 19:09:27  阅读:284  来源: 互联网

标签:python json mongodb flask pymongo


我正在尝试使用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\"}}", 
   "{\"content\": \"some story here\", \"_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处理程序.

标签:python,json,mongodb,flask,pymongo
来源: https://codeday.me/bug/20190728/1564699.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有