3
我試圖讓使用瓶從MongoDB中收集的響應:PyMongo和瓶的Jsonify包含逃生斜線
@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序列化'類型的錯誤。我很確定這與ObjectID有關。任何想法如何將其轉換爲json? – Chris
@Chris:更新後,'jsonify()'不會讓你指定一個'default'處理器,所以你想直接用'json.dumps()'的返回值自己構造'Response()'對象。 –
非常感謝,我現在明白了:) – Chris