몽고 Db에 있는 데이터를 flask를 이용하여 데이터를 넘기려 하는데..
@app.route('/test/do', methods=['GET'])
def post_test():
test = list(db.user.find({},{'_id': False})
return jsonify({'data': test})
현재의 방식으로 데이터를 넘기게 된다면
TypeError: Object of type ObjectId is not JSON serializable
라는 오류를 접하게 될것이다.
이런경우 간단하게 json 방식으로 바꿔주면 된다고 생각했다.
from bson.json_util import dumps
.
.
.
return jsonify({'data': dumps(test)})
현재의 방식으로 코드를 수정하여 데이터를 넘겨봤다.
html콘솔 화면에서
[{"img": "123", "menu": "123", "price": "123", "category": "\ub098\ubb3c", "hide": "0", "user_id": {"$oid": "60f951034dba7a2f1e9a14e0"}}, {"img": "qwe", "menu": "qwe", "price": "qwe", "category": "\uae40\uce58", "hide": "0", "user_id": {"$oid": "60f951104dba7a2f1e9a14e2"}}, {"img": "zxc", "menu": "zxc", "price": "zxc", "category": "\uae40\uce58", "hide": "0", "user_id": {"$oid": "60f951384dba7a2f1e9a14e4"}}]
데이터가 잘넘어간거처럼 보이나. str타입으로 넘어왔다..
혹시 몰라 .length를 해보니.. 길이가 411
아무리봐도 내가 원하는 dictionary가 아니다.
이런경우 JSON.parse()를 사용하여 dictionary형식으로 변경가능하다.
let a = JSON.parse(test)
맨밑를 본다면 딕셔너리로 잘넘어온것을 확인가능하다!